C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: タブ上にあるテキストボックスの名前を全て列挙するには?


(過去ログ 116 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68544 / inTopicNo.1)  タブ上にあるテキストボックスの名前を全て列挙するには?
  
□投稿者/ 初めてのC# (1回)-(2013/10/27(Sun) 00:05:35)

分類:[C#] 

2013/10/27(Sun) 00:24:00 編集(投稿者)

C#でプログラムを始めたばかりです。

現在2つのタブコントロールがあります。
tabControl1,tabControl2

その2つのタブには、それぞれいくつかのテキストボックスがあります。

tabControl2にあるテキストボックスの名前を
全て列挙したいのですが分かりません。

下記の様に記述してみましたが
思い通りの結果が得られません。

foreach (Control c in this.Controls)
{
  if (c is TabControl)
{
if (c.Name=="tabControl2")
{
foreach (Control text in c.Controls)
{
if (text is TextBox)
{
MessageBox.Show(text.Name);
}
}
}
}
}
}
引用返信 編集キー/
■68545 / inTopicNo.2)  Re[1]: タブ上にあるテキストボックスの名前を全て列挙するには?
□投稿者/ Azulean (226回)-(2013/10/27(Sun) 00:19:18)
名前を取得するだけでよいのでしょうか?
それを対処に何か処理をしたいとうことはありませんか?


名前を採る一例

StringBuilder textBoxNames = new StringBuilder();

// タブコントロールにあるすべてのタブページを探す
foreach (TabPage tabPage in tabControl2.TabPages)
{
    // タブページの中にあるコントロールを探す
    foreach (Control control in tabPage.Controls)
    {
        // テキストボックスであればそれの名前を確認する
        if (control is TextBox)
        {
            textBoxNames.AppendLine(control.Name);
        }
    }
}
MessageBox.Show(textBoxNames.ToString());


ただし、タブページの上にグループボックスやパネルがあって、その上に TextBox がある場合、それを探せません。
それを探すためには、LINQ なり、再帰なりを使って TabPage.Controls の中のコントロールをすべて探査する必要があります。

引用返信 編集キー/
■68546 / inTopicNo.3)  Re[2]: タブ上にあるテキストボックスの名前を全て列挙するには?
□投稿者/ 初めてのC# (2回)-(2013/10/27(Sun) 00:27:47)
No68545 (Azulean さん) に返信
> 名前を取得するだけでよいのでしょうか?
> それを対処に何か処理をしたいとうことはありませんか?
>
>
> 名前を採る一例
>
> StringBuilder textBoxNames = new StringBuilder();
>
> // タブコントロールにあるすべてのタブページを探す
> foreach (TabPage tabPage in tabControl2.TabPages)
> {
> // タブページの中にあるコントロールを探す
> foreach (Control control in tabPage.Controls)
> {
> // テキストボックスであればそれの名前を確認する
> if (control is TextBox)
> {
> textBoxNames.AppendLine(control.Name);
> }
> }
> }
> MessageBox.Show(textBoxNames.ToString());
>
>
> ただし、タブページの上にグループボックスやパネルがあって、その上に TextBox がある場合、それを探せません。
> それを探すためには、LINQ なり、再帰なりを使って TabPage.Controls の中のコントロールをすべて探査する必要があります。

ありがとうございます。
大変参考になりました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -