【问题标题】:Is there a way to reference a variable and a control to update said variable with controls text field?有没有办法引用变量和控件来使用控件文本字段更新所述变量?
【发布时间】:2016-02-03 15:02:38
【问题描述】:

基本上,我在 LostFocus 上有几百个控件需要更新位于类中的不同变量。

Private Sub txtFirstName_LostFocus(sender As Object, e As System.EventArgs) Handles txtFirstNameMain.LostFocus
    Interview.FIRSTNAME = txtFirstNameMain.Text
End Sub
Private Sub txtLastName_LostFocus(sender As Object, e As System.EventArgs) Handles txtLastNameMain.LostFocus
    Interview.LASTNAME = txtLastNameMain.Text
End Sub

有没有办法创建一个可以处理这个问题的 Sub?也许我可以将目标变量放在控件的标签上?但是,如果没有大量代码工作,我将如何引用所述变量呢?

Private Sub Lost_Focus_UpdateClass(sender As TextBox, e As System.EventArgs) Handles txtFirstNameMain.LostFocus, txtLastNameMain.LostFocus
    Select Case sender.Tag
        Case "FIRSTNAME"
            Interview.FIRSTNAME = sender.Text
        Case "LASTNAME"
            Interview.LASTNAME = sender.Text
    End Select
End Sub

这只是感觉它所做的事情需要太多。有没有更好的方法来处理这个问题?

我正在使用 WinForms。

编辑:TnTinMn - 工作。必须对可空字段进行更改。

    Me.tbFirstName.DataBindings.Add("Text", dataStore, "FirstName", True, DataSourceUpdateMode.OnValidation, String.Empty)
    Me.tbLastName.DataBindings.Add("Text", dataStore, "LastName", True, DataSourceUpdateMode.OnValidation, String.Empty)

【问题讨论】:

  • 您可以使用验证事件。优点之一是代码将全部在一个地方,而不是在整个表单中。您可以撤消或取消,因为在用户说他们完成之前不会设置/转移任何道具。

标签: vb.net winforms visual-studio-2010


【解决方案1】:

根据您描述的目标,将控件绑定到类属性的数据应该可以工作。

Public Class Form1
    Private dataStore As Example
    Protected Overrides Sub OnLoad(e As EventArgs)
        MyBase.OnLoad(e)
        Me.SetupDataStore()
    End Sub

    Private Sub SetupDataStore()
        Me.dataStore = New Example
        Me.tbFirstName.DataBindings.Add("Text", dataStore, "FirstName", True, DataSourceUpdateMode.OnValidation)
        Me.tbLastName.DataBindings.Add("Text", dataStore, "LastName", True, DataSourceUpdateMode.OnValidation)
    End Sub

End Class

Friend Class Example
    Public Property FirstName As String
    Public Property LastName As String
End Class

【讨论】:

  • 这看起来是最好的答案。现在我必须重做我刚刚写的所有代码。 ^-^ - 编辑:如果我有两个文本框绑定到同一个 DataBinding,它们会在离开时都更新为新值吗?
  • 好的,我已经完成了所有工作。现在这里有一个问题,如果 Date 可以为 Nullable,当它为空时如何让它越过框?它是“”,但应该是 Nothing,将其设置为 Nothing 不起作用。
猜你喜欢
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 2019-12-21
  • 2020-12-12
  • 2022-01-05
  • 2020-01-22
  • 1970-01-01
  • 2016-04-25
相关资源
最近更新 更多