Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForms。设计时数据绑定到子控件';s属性_C#_Winforms - Fatal编程技术网

C# WinForms。设计时数据绑定到子控件';s属性

C# WinForms。设计时数据绑定到子控件';s属性,c#,winforms,C#,Winforms,我正在开发自己的“MyTextBox”控件 现在在设计阶段,我把“MyTextBox”放在表单上。在设计器的属性Grid中,我可以看到myTextBox1控件的“TextBox”属性在子网格中可见 我还在表单中添加一个“BindingSource”用于数据绑定 子网格提供了用于绑定的“Text”属性,我将它绑定到bindingSource1,就像我们通常绑定texbox的“Text”属性一样。我期望设计者生成以下代码: this.myTextBox1.TextBox.DataBindin

我正在开发自己的“MyTextBox”控件

现在在设计阶段,我把“MyTextBox”放在表单上。在设计器的属性Grid中,我可以看到myTextBox1控件的“TextBox”属性在子网格中可见

我还在表单中添加一个“BindingSource”用于数据绑定

子网格提供了用于绑定的“Text”属性,我将它绑定到bindingSource1,就像我们通常绑定texbox的“Text”属性一样。我期望设计者生成以下代码:

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

上面的演练没有提供这种效果。我想知道是否有办法做到这一点。我的意图是在设计时数据绑定由MyTextBox生成的TextBox的“Text”属性。

不要过早放弃。Windows窗体最有用的功能之一是数据绑定。根据您的要求,首先将
文本框
属性更改为:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public TextBox TextBox
{
    get
    {
        return textBox1;
    }
}
然后以设计器的方式绑定用户控件的
TextBox
属性
Text


数据绑定和WinForms有一条规则:不要使用它。如果你想使用数据绑定,请使用WPF。老实说,我同意你的看法。自从我开始项目开发以来,我一直备受折磨:)。但无论如何,我需要一个解决方案,不要太快放弃。Windows窗体最有用的功能之一是数据绑定。另外,要将按钮添加到
文本框
,无需创建用户控件。您可以向
控件
集合的
文本框
中添加一个按钮,例如,将按钮的
停靠
属性设置为向右停靠。
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public TextBox TextBox
{
    get
    {
        return textBox1;
    }
}