VB.netを習得しようとしていますが、問題が発生しました。私はパネル/テキストボックス/グループボックスにラベルを動的に追加しようとしています。ダイナミックラベルを作成する際には、の位置というプロパティを指定する必要があります。私はこれに少し驚きました。新しいラベルを作成する場所を正確に管理する必要があるのはなぜですか?なぜこれを自動的に処理するレイアウトマネージャーはありませんか?とにかく、これをやる方法を見つけることができませんでしたが、ラベルを動的に追加するためのテキストボックスの使用を主張する例が見つかりました。しかし、私は、テキストボックスに何が表示されても、1つのラベルが表示されているのを見ているだけです。 (私はデバッグするとき、私はより多くのラベルがコントロールに追加されたことをオブジェクトに気づいたが、表示はそれに応じて反映していなかった)vb.netで場所を指定せずにラベルを動的に追加する
ここでここで私は
を使用していたコードがあります、それは次のようになります。
Private Sub AddTagCombo_SelectedIndexChanged(sender As Object, e As EventArgs) Handles addTagCombo.SelectedIndexChanged
Dim selectedTag = addTagCombo.Text
If Not IsDuplicateTag(selectedTag) Then
Dim label As Label = New Label
label.Text = selectedTag
label.Name = selectedTag
label.AutoSize = True
label.Top = 10
label.Left = 10
tagsBox.Controls.Add(label)
End If
End Sub
ダイナミックラベルを追加するには、別のコンテナ内に配置する場所を気にせずにどうすればよいですか?
ツールボックスからフォーム上のラベルを削除するためにマウスを使用しなくなりました。だからあなたはもはやデザイナーにあなたのためにLocationプロパティを設定させることはなく、あなた自身がそれをやる必要があります。今はお互いの上にそれらを置いているので、最後に追加したものしか見ることができません。 FlowLayoutPanelは、それらを自動的に配置するのに便利です。またはComboBox、DomainUpDown、ListBox、ListView、TreeView、DataGridViewなどの複数の文字列を表示できる他のコントロール。それらをすべて試してみてください。 –
私はflowlayoutpanelについてちょっと混乱しています。私のコードに間違いがありますか?なぜそれは複数のコントロールを表示しませんか? – Jay
私はあなたが理解できないことを理解するのに非常に苦労しています。お互いの上にラベルを積み重ねると、あなたは何を期待しましたか?あなたは書籍の束の一番下にある本の前に印刷されたタイトルをどうやって読んでいますか? –