在visual studio中,如何访问托管用户控件的表单上的控件?例如,当文本在用户控件的文本框中更改时,我希望另一个用户控件中的另一个文本框中的文本更改。这两个用户控件都托管在同一表单上。提前谢谢!
答案 0 :(得分:1)
如果你需要不同的数据输入用户界面,我更喜欢有两个不同用户界面的控件,但我会为它们使用一个数据源,并使用数据绑定来处理场景。
如果将两个控件绑定到单个数据源,虽然可以使用不同的UI,但是只有一个数据,并且两个控件数据都是同步的。
你的问题的答案:
您可以在每个控件中定义一个设置Text
TextBox
的属性。然后,您可以处理TextChanged
的{{1}}事件,然后找到另一个控件并设置文本属性:
<强>对照1 强>
TextBox
<强>控制2 强>
public partial class MyControl1 : UserControl
{
public MyControl1() { InitializeComponent(); }
public string TextBox1Text
{
get { return this.textBox1.Text; }
set { this.textBox1.Text = value; }
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
if (Parent != null)
{
var control1 = Parent.Controls.OfType<MyControl2>().FirstOrDefault();
if (control1 != null && control1.TextBox1Text != this.textBox1.Text)
control1.TextBox1Text = this.textBox1.Text;
}
}
}