winform控件开发包括三种类型
- 复合控件,又称为组合控件
- 扩展控件
- 自定义控件
复合控件:
复合控件,又称为组合控件,一般是将现有控件功能进行组合形成一个新的控件。
举例:
设计一个工控中常用的模拟量控件,可以显示变量的名称,变量值和单位,如下图所示
在这个复合空间中,左边使用一个lable显示变量名,中间使用一个textbox显示变量值,右边也是一个lable显示单位,
为了更好的布局这三个控件,这里使用了tableLayout控件,将其设置为1行3列,分别将两个lable和一个textbox添加到tableLayout设置的三个空格中
复合控件创建步骤如下:
添加“新建项”》选择“用户控件”》输入名称“AnalogDisplay”点击确定
这里注意,复合控件使用的是用户控件模板创建的,其继承UserControl类
不同于复合控件,扩展控件继承需要扩展的控件,而自定义控件继承Control类,具体方式参考后续笔记。
具体实现:
或者:
代码如下:
using System; using System.Drawing; using System.Windows.Forms; namespace 各种C_sharp功能测试 { public partial class AnalogDisplay : UserControl { public AnalogDisplay() { InitializeComponent(); txtVarValue.KeyDown += TxtVarValue_KeyDown; } //变量名 public string VarName { get { return lblVarName.Text; } set { lblVarName.Text = value; } } //变量值 public string VarValue { get { return txtVarValue.Text; } set { txtVarValue.Text = value; } } //单位 public string VarUnit { get { return lblVarUnit.Text; } set { lblVarUnit.Text = value; } } //设置显示字体 public Font TextFont { get { return lblVarName.Font; } set { lblVarName.Font = value; txtVarValue.Font = value; lblVarUnit.Font = value; } } //控制显示还是输入 public bool InputEnable { get { return txtVarValue.Enabled; } set { txtVarValue.Enabled = value; } } //添加一个事件,当输入变量值并按下回车键时触发该事件 public event EventHandler<AnalogDisplayArg> ValueChanged; private void TxtVarValue_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { if (!string.IsNullOrEmpty(VarValue)) { ValueChanged?.Invoke(this, new AnalogDisplayArg(VarValue)); } } } } public class AnalogDisplayArg : EventArgs { public string Value { get; set; } public AnalogDisplayArg(string value) { Value = value; } } }
标签:控件,set,string,get,一之,value,public,winform From: https://www.cnblogs.com/hanzq/p/17342202.html