2016-12-21 93 views
1

我發展我自己的「MyTextBox」控制WinForms。設計時數據綁定到子控件的屬性

public class MyTextBox:UserControl 
{ 
    TextBox textBox; 
    Button button; 

    public MyTextBox() 
    { 
     this.textBox = new TextBox(); 
     this.button = new Button(); 
     this.button.Click += button_Click; 
     this.Controls.Add(this.textBox); 
     this.Controls.Add(this.button); 
    } 

    public TextBox TextBox 
    { 
     get 
     { 
      return this.textBox; 
     } 
    } 
} 

現在在設計時,我把「MyTextBox」表單上。在Designer的PropertyGrid我可以看到myTextBox1控件的「TextBox」屬性在子網格中可見。

我還在數據綁定表單中添加了一個「BindingSource」。

子網格提供了用於綁定的「Te​​xt」屬性,並且我將它綁定到bindingSource1,正如我們通常綁定texbox的「Text」屬性一樣。我期待着由設計者生成以下代碼:

this.myTextBox1.TextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bindingSource1, "FullName")); 

的演練上面是不會放棄這種效果。我想知道是否有辦法做到這一點。我的目的是在設計時數據綁定TextBox的「文本」屬性,由MyTextBox拼接。

+1

的Theres一個規則:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] public TextBox TextBox { get { return textBox1; } } 

那麼這種方式綁定你的用戶控件的TextBoxText財產設計師:不要使用它。如果你想使用數據綁定使用WPF。 – user3292642

+0

老實說,我同意你的看法。自從我開始項目開發以來,我正在受到折磨:)。但無論如何,我需要一個解決方案 – Bahrom

+0

不要放棄太快。數據綁定是Windows Forms最有用的功能之一。 –

回答

1

不要放棄太快。數據綁定是Windows Forms最有用的功能之一。對於您的要求,首先你TextBox屬性改成這樣:

數據綁定和WinForms

enter image description here

相關問題