在Visual Studio中,如何访问托管用户控件的表单上的控件?例如,当用户控件中的文本框中的文本更改时,我希望更改另一个用户控件中的另一个文本框中的文本。这两个用户控件都以相同的形式托管。提前致谢!
如果您需要不同的UI进行数据输入,则我希望有2个具有不同UI的控件,但是我将为它们使用单个数据源,并使用数据绑定处理场景。
如果将两个控件都绑定到单个数据源,尽管可以有不同的UI,但是您只有一个数据,并且两个控件的数据都是同步的。
您问题的答案:
您可以定义在其中设置每个控件的属性Text
的TextBox
。然后,您可以处理的TextChanged
事件,TextBox
然后找到另一个控件并设置text属性:
控制1
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;
}
}
}
控制2
public partial class MyControl2 : UserControl
{
public MyControl2() { 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<MyControl1>().FirstOrDefault();
if (control1 != null)
control1.TextBox1Text = this.textBox1.Text;
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句