我有一个复杂的问题,请你帮我。
问题:
我有一张TabControl
的表单。第一个中有两个TabPages
是dataGridView
,第二个是comboboxes
。
DataGridView
填充了来自Table1
的数据,在另一个标签上,第一个combobox
数据源设置为TableCB1
,第二个combobox
设置为{{} 1}}等。
在TableCB2
...之间TableCB1, TableCB2
喜欢(DataRelations
)。我正在使用数据绑定将表中的当前列绑定到控件。
当我打开表单时,首先填充tabPage(TableCB1.ID->TableCB2.ParentID
)并且正常工作,但如果我选择第二个TabPage(dataGridView
),则选择comboboxes
项目选择不正确!!! 只有第一个combobox
设置正确,但所有其他项目都选择了数据源中的第一项,直到我更改bindingsource位置或make combobox
。
但是如果在表单加载时显示TabPage 2,则正确选择组合框项目!
我知道这是一个非常具体的问题,但希望有人能帮我解决这个问题。
我在.NET3.5和winforms上做这件事。
感谢。
答案 0 :(得分:0)
this帖子中的回复可能就是您所需要的:
在创建控件之前,控件上不会发生DataBinding。只有在TabPage可见后,TabPage才会创建子控件。要使DataBinding发生,您需要强制创建TabPage上的子控件,并且可以通过显示/隐藏TabPage来实现这一点(正如您所发现的那样)。