C# 用自定义控件替换现有控件
我有一个C# 用自定义控件替换现有控件,c#,.net,winforms,C#,.net,Winforms,我有一个WinForms表单,上面有几个文本框。我需要将其中一些更改为自定义版本的TextBox(我必须重写一个函数)。因为整个新控件只是这一个函数,所以我只需要几行代码就可以完成,就像我表单中包含的类一样。现在我想在代码中将设计器生成的文本框的实例更改为这个文本框的实例。这能做到吗 如果不能,并且我必须向我的项目添加一个全新的UserControl项,那么我至少可以在设计器中替换它,而不会丢失所有属性更改和事件处理程序绑定吗?说明 查看.Designer.cs文件。这是设计器创建的文件。您可以
WinForms
表单,上面有几个文本框。我需要将其中一些更改为自定义版本的TextBox
(我必须重写一个函数)。因为整个新控件只是这一个函数,所以我只需要几行代码就可以完成,就像我表单中包含的类一样。现在我想在代码中将设计器生成的文本框的实例更改为这个文本框的实例。这能做到吗
如果不能,并且我必须向我的项目添加一个全新的UserControl
项,那么我至少可以在设计器中替换它,而不会丢失所有属性更改和事件处理程序绑定吗?说明
查看.Designer.cs
文件。这是设计器创建的文件。您可以通过这种方式将文本框更改为自定义文本框
样品
转到表单类或表单的designer.cs类中的InitializeComponent()
方法。在这个方法中,您可以找到textbox控件的用法,现在转到这些用法的定义,并将textbox变量的类型更改为自定义实现的textbox类型
#region Windows Form Designer generated code
private void InitializeComponent()
{
// change this
this.textBox1 = new System.Windows.Forms.TextBox();
this.SuspendLayout();
//
// textBox1
//
this.textBox1.Location = new System.Drawing.Point(0, 0);
this.textBox1.Name = "textBox1";
this.textBox1.Size = new System.Drawing.Size(100, 20);
this.textBox1.TabIndex = 0;
//
// Form1
//
// ...
}
#endregion
// change this
private System.Windows.Forms.TextBox textBox1;