1

我对嵌套在 TabControl 中的控件有疑问。我有一个带有 n 个 TabPages 的 TabControl,每个 TabPage 上有一个 DataGridView。每个 DataGridView 都有一个 CheckBoxC 列。我使用不同的数据源填充所有数据网格视图(因此每个数据源都有不同类型的数据)。这工作正常!


我添加了一个 ComboBox 列,因此我可以选择所有 DataGridViews 上的所有行。我以编程方式执行此操作(单击按钮),并且选择的计数是可以的,除了刻度没有添加到 DataGridViews 的复选框单元格中,除了 TabPage #1(我可以在启动时看到的那个)。


如果我在去之前单击所有 tabPages并选择 DataGridViews 中的所有行,则代码可以正常工作,并且刻度会添加到所有行中(就像我想要的那样)。

但是为什么不点击所有的tabPages就不行呢?TabControl 是否有任何错误或某些东西?

4

2 回答 2

1

我的解决方法是在表单的加载事件中添加它。

this.tabcontrol1.BindingContext = this.BindingContext;
于 2015-03-20T17:40:19.420 回答
0

我知道这个答案对 WPF 是正确的,但对 WinForms 并不积极。至少使用 WPF,它是一个基于视觉的界面,因此程序不会在其他选项卡上加载任何对象/控件/等,直到它们被单击。所以它不会是一个错误,它是设计的一部分。

我在尝试使用单个按钮清除多个选项卡上的所有文本框时遇到了类似的问题。我从来没有让它工作,但我知道应该有一种方法可以使用VisualTreeHelperforeach语句的组合。

同样,这是基于 WPF 而不是 WinForms,但希望它可以为您指明如何解决它的正确方向。

于 2012-05-20T16:27:46.340 回答