0
public partial class A : UserControl
{
  private string _x;
  public string X {
    get { return _x; }
    set { 
      this._x = value;
      this.textBox1.Text = this._x; 
  }
}
public partial class B : WinForm
{
   public B() {
     //Add usercontrol A to Groupbox1
     //Set A.X = "hello world"
   }
}
public class MainForm: WinForm
{
    public void button1_Click(....) { 
       B bForm = new B();
       bForm.ShowDialog();
    }
}

在设计时,我设置了 textbox1.Text="hello"。在主类中,我有一个按钮可以打开一个新表单 B,并且在该表单 BI 上有一个组框来添加这个用户控件 A 并更改 X 属性值 =“hello world”,但 textBox1.Text 没有在 UI 上进行更改。当我在设置 textbox1.Text = this._x 之后设置断点时,它显示值确实更改为“hello world”但它没有反映在 UI 上?

为什么?以及如何解决?

谢谢一堆。

4

1 回答 1

3

我的猜测是(因为我没有看到所有代码,这就像猜谜游戏 8)) -InitializeComponentclassB. 由于X属性没有DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)属性,它在InitializeComponent方法中用空字符串序列化 - 从而擦除先前显式设置的值。

于 2013-02-15T07:24:17.610 回答