アプリ版:「スタンプのみでお礼する」機能のリリースについて

Visual Studio Community 2019

Visual Basicのフォームデザイン画面にて、Groupbox1内へCheckBox1コントロールを配置しました。

Groupboxの配下のコントロール名を確認するには、Groupboxプロパティ画面のどの項目を参照したら良いのでしょうか?

また、CheckBoxコントロールの親となるGroupbox名を確認するのは、CheckBoxコントロールのどの項目を参照したら良いのでしょうか?

上記、いずれの場合もフォームデザイン画面で確認希望です。
よろしくお願い致します。

A 回答 (2件)

デザイナ画面ではできません。



Groupbox等のコンテナコントロール直下の子コントロールは Controls プロパティに
https://docs.microsoft.com/ja-jp/dotnet/api/syst …
Groupbox1の中のにPanelがいくつかあって...と階層構造になっているのなら、Groupbox.Controlsで直下のコントロールを取得→直下のコントロルのControlsが空でなかったらその中を取得→さらにそのControlsが.. と再帰的に取得する必要があり。

コントロールが含まれる直上の親コントロールは Parentoプロパティに
https://docs.microsoft.com/ja-jp/dotnet/api/syst …
階層構造になっているなら、ParentのParentの... と辿る必要あり。

デザイナで配置したコントロールの名前はNameプロパティに
https://docs.microsoft.com/ja-jp/dotnet/api/syst …
デザイナを使わず配置した場合は、Nameは自分で設定する必要あり。
また、 上記ControlsやParentで得られるControlを使って操作することもできるので、必ずしも名前が必要なわけではありません。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
再帰的に取得する必要があるのですね!
参考にさせて頂きます。

お礼日時:2022/02/13 21:58

Groupboxの配下のコントロール名をListBox1に、


CheckBoxコントロールの親となるGroupbox名を確認結果はTextBox1になら、

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

For Each c As Control In GroupBox1.Controls()
ListBox1.Items.Add(c.Name)
Next

TextBox1.Text = CheckBox1.Parent.Name
End Sub

こんな感じですかね?
もっと良いのがあるかもですけど。
「Groupboxの配下のコントロール名を」の回答画像1
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています