我有我用 C# 编写的 Winform 应用程序。在我的表单上,我有一个包含七页的 TabControl,每一页都充满了元素(主要是 TextBoxes 和 DropDownLists)。我使用 DataReader 提取一些信息,填充 DataTable,并使用元素的 DataBindings.Add 方法用当前值填充这些元素。
用户可以在这些元素中输入数据,按“保存”,然后我使用元素的文本字段设置更新查询的参数。例如:
updateCommand.Parameters.Add("@CustomerName", SqlDbType.VarChar, 100).Value = CustomerName.Text;
我遇到的问题是,一旦我加载表单,所有元素显然都被认为是空的,直到我手动选择每个选项卡。因此,如果我在加载表单后立即按“保存”,我尚未选择的 TabPages 上的所有字段都会尝试使用空数据进行更新(不好)。当我选择每个 TabPage 时,这些元素现在将正确地发送它们的数据。目前,我已经制定了一个(非常)丑陋的解决方法,我在第一次填充数据时以编程方式选择每个 TabPage,但这是一个不可接受的长期解决方案。
我的问题是,如何在用户选择该 TabPage 之前让 TabPages 上的所有元素正确返回其数据?