2011-05-31 32 views
1

我在窗体上的一个选项卡控件中有一堆控件。一些控件是数据绑定的。我试图访问控件的值,但一些控件似乎没有值,直到我物理导航到具有控件的窗体。何时控制数据被绑定?在实际设置值之前是否必须先显示它们?什么时候获胜表单控件数据绑定?

回答

1

我有准确的同样的问题,每当我想读unnanvigated的TabPages组合框的默认值返回null,我founddatabanding occures aftercontrol显示, 和我做什么,在写此功能

protected virtual void SetComboData(System.Windows.Forms.Control parentCtrl, DataRow r) 
{ 
    foreach (System.Windows.Forms.Control ctrl in parentCtrl.Controls) 
    { 
     if (ctrl is ComboBox) 
      if ((ctrl as ComboBox).DataBindings.Count != 0) 
       (ctrl as ComboBox).SelectedValue = r[(ctrl as ComboBox).DataBindings[0].BindingMemberInfo.BindingMember]; 
     if (ctrl is TextBox) 
      if ((ctrl as TextBox).DataBindings.Count != 0) 
       (ctrl as TextBox).Text = r[(ctrl as TextBox).DataBindings[0].BindingMemberInfo.BindingMember].ToString(); 
     SetLecData(ctrl, r); 
    } 
} 

和我在保存数据集之前调用了函数

SetComboData(tabControl1, MyDataSet.Table["MyTable"]);//for tabcontrol 
+0

在绑定发生之前,有没有办法让控件显示? – MBU 2011-05-31 19:33:01

0

这是因为选项卡没有被初始化。解决此问题的方法是对tabcontrol进行子类化,并在添加标签页时“初始化”标签页。有关更多详细信息,请参阅Does data binding work on invisible control?

相关问题