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を変更します。set textbox1.Text = this._xの後にブレークポイントを設定すると、値が「hello world」に変更されたことが示されますが、UIには反映されませんか?

なんで?そしてそれを修正する方法は?

本当にありがとう。

4

1 に答える 1

3

私の推測は(私はすべてのコードを見るわけではなく、それはすべてゲーム8を推測するようなものなので))-にInitializeComponentメソッドがありclassBます。Xプロパティには属性がないため、空の文字列を使用してメソッドでDesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)シリアル化されます。したがって、以前に明示的に設定された値が消去されます。InitializeComponent

于 2013-02-15T07:24:17.610 に答える