【问题标题】:What determines the order in which data bound text boxes are filled in a form?什么决定了数据绑定文本框在表单中的填充顺序?
【发布时间】:2022-10-25 23:28:05
【问题描述】:

我有一个带有三个文本框的表单,其中第一个和第二个绑定到同一个数据绑定源。当表单加载时,我需要填充第一个文本框,以便第二个可以使用它的数据来查找它的描述并填充第三个文本框。但是,我的第二个文本框在我的第一个文本框之前填充,这意味着当调用 _TextChanged 函数时,第一个文本框的值是一个空字符串,对第三个文本框无用。

什么决定了数据绑定文本框的填充顺序,如何更改此顺序,以便在调用第二个文本框 TextChanged 函数时,我的第一个文本框有数据?

【问题讨论】:

  • 您可以将计算的列/属性添加到数据源并将第二个 TextBox 绑定到它,因此当Current 更改时,您已经收到计算值。类似于带有 Expression 属性集的 DataTable 的列
  • 不幸的是,这不是一个选择。这方面的数据表需要能够更新 SQL 表,所以如果我绑定到表中不存在的表达式列,它就不能很好地保存。我无法更改绑定,我只需要知道如何先更新一个。
  • 那么也许您可以避免使用 Control 的 TextChanged 事件,而是订阅 BindingSource 的 CurrentChangedPositionChanged 事件,并在引发事件时设置第三个 TextBox 的 Text 值——在这种情况下,当您设置数据绑定,首先调用[BindingSource].SuspendBinding(),然后在设置所有绑定后,调用[BindingSource].ResumeBinding()

标签: c# winforms textbox bindingsource


【解决方案1】:

在表单的设计器视图中,您可以选择视图 -> 其他窗口 -> 文档大纲。

此窗口允许您移动表单中控件的顺序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 2018-06-05
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多