首页 > 解决方案 > 将一个表单实例的 TextBox 控件的更改值更新为所有实例

问题描述

我有一个父窗体和子窗体(都是 windows 窗体)。在父表单上,我有一个TabControl带有 2 个选项卡的选项卡,每个选项卡都需要添加一个子表单。

在一个子表单上,我有一个TextBox作为初始值的值。我想要的只是当我在子窗体的一个实例上更改 TextBox 值时,它也需要更新其他实例。

我设法在表单上添加了两个实例,

Private Sub Parent_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    Dim ch As New Child
    Dim ch1 As New Child
    ch.Top = False
    ch.TopLevel = False
    ch1.Top = False
    ch1.TopLevel = False
    Panel1.Controls.Add(ch1)
    ch1.Show()
    Panel2.Controls.Add(ch)
    ch.Show()
End Sub

但不知道在一个实例上更改时如何更改另一个实例上的值。

标签: .netvb.netwinforms

解决方案


您可以使用数据绑定到应用程序设置或数据绑定到任何其他支持两种方式数据绑定的类的单个实例:

  1. 打开Settings.settings文件。
    如果您选择显示解决方案资源管理器工具栏中的所有文件,它位于解决方案资源管理器中的“我的项目”节点下。您也可以通过右键单击项目节点、选择属性并选择设置选项卡来打开它。

  2. 添加一个新的设置属性并将其命名,例如Setting1并让类型为字符串并根据需要分配一个默认值。

  3. 在设计师处打开您的表格。
  4. 选择要TextBox在其中显示值的位置。
  5. Properties Window中,展开(Application Settings)并单击(PropertyBinding)...前面的。
  6. 在“应用程序设置”窗口中,选择Text属性并作为值,选择您在步骤 2 中创建的设置属性。
  7. 如果您有多个要在其中显示值的表单,请对每个表单重复步骤 3 到 6。

当您运行应用程序时,当您键入任何TextBox绑定到设置值的控件时,所有绑定的文本框都会立即更新。


推荐阅读