2009-09-10 16 views
0

私はタブコントロールでwinformを持っています。デフォルトのタブでは、2番目のタブ(デフォルト値)のテキストボックスから値を取得する関数に 'go'ボタンが関連付けられています。c#:Windowフォーム:非アクティブなタブから子コントロールの値を取得する

私が最初に2番目のタブを見ていないと、値が ""になります。私が推測しているのは、テキストボックスがデフォルト値でポーリングされる原因になります。

フォームをロード時にすべてのコントロールに入力するにはどうすればよいですか?

+0

あなたのコードではおそらく何かであり、それを見ることなくあなたを助けるのは難しいでしょう。 –

+0

コード: プライベートボイド開始(オブジェクト送信者、のEventArgs e)の {ストリングset_dateformat = combobox.date.Text。 文字列set_nameformat = combobox.name.Text; } 両方のコンボボックスは、自分のタブコントロールの2番目のタブにあります。このメソッドはタブ#1のボタンに結び付けられています –

+0

あなたの質問には "テキストボックス"と書かれていますが、あなたのコードは "コンボボックス" –

答えて

0

これは魔法のように動作:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 

namespace WindowsFormsApplication1 
{ 
    public partial class Form1 : Form 
    { 
     ComboBox c = new ComboBox(); 
     Button b = new Button(); 

     public Form1() 
     { 
      InitializeComponent();    

      b.Text = "New Button"; 
      b.Click += new EventHandler(b_Click); 
      this.tabPage1.Controls.Add(b); 

      c.Items.Add("Hello World"); 
      c.Items.Add("My Program"); 
      c.SelectedIndex = 0; 
      this.tabPage2.Controls.Add(c);    
     } 

     void b_Click(object sender, EventArgs e) 
     { 
      MessageBox.Show(c.Text.ToString()); 
     } 
    } 
} 

-1にロード時にCOMBOXののListIndexのデフォルト値を指定しない場合、「」(空白)であるので、あなたのデフォルト値を取得する正確な指標を知っていればコンボボックスに表示され、listindexをそのインデックスに設定します。

コンボボックスの最初の項目を使用すると、実行時に選択されます。

comboBox1.SelectedIndex = 0 (The first item in the combo box) 
1

データバインディングは、目に見えないコントロールでは機能しません。私はそれを見つけたhere。参照のためにthis MSDN thread

関連する問題