2012-02-19 11 views
5

私はタブページが少なく、それぞれにリッチテキストボックスがあります。選択したタブでrichtechboxにアクセスするにはどうすればよいですか?C#のTabPageからコントロールを取得するには?

TabPage selectedTab = tabControl.SelectedTab; 
RichTextBox selectedRtb = selectedTab.Controls.Find("rtb", true).First() as RichTextBox; 

これは私が試したことですが運がないものです。

を追加しました:これはWinFormsのであれば

これは、タブページは、RichTextBoxコントロールを追加する方法である

TabPage newTab = new TabPage(name); 
RichTextBox rtb = new RichTextBox(); 
rtb.Dock = DockStyle.Fill; 
rtb.BorderStyle = BorderStyle.None; 
rtb.Text = file.Data; 
newTab.Controls.Add(rtb); 
tabControl.TabPages.Add(newTab); 
tabControl.SelectedTab = newTab; 
+0

タブにコントロールを追加したコードを投稿してください。 –

+0

変数名は無関係です。 Nameプロパティを設定するのを忘れました。 –

答えて

9

、それだけで次のようになります。

if (selectedTab.Controls.ContainsKey("rtb")) 
    RichTextBox selectedRtb = (RichTextBox)selectedTab.Controls["rtb"]; 

RTBは名前である場合リッチテキストボックス(RichTextBox)コントロールの

あなたのコントロールを作成するときは、それに名前を追加しますが:あなたがコントロールのnameプロパティを使用して、それを見つけようとしているので、あなたのアプローチは機能していない

RichTextBox rtb = new RichTextBox(); 
rtb.Name = "rtb"; 
3

理由があります。

コードを見ると、Nameプロパティを設定していません。あらかじめ既知の名前を生成することができれば、それを使ってコントロールを探すことができます。

また、これを試すことができます。

var rtb = tabControl.SelectedTab.Controls.Cast<Control>() 
           .FirstOrDefault(x => x is RichTextBox); 
関連する問題