【往期经典】
机器人无损收发小数的原理
TCP通信 | 三行代码制作自己的专属工具
vs+c#做的HMI程序模板,可以拿来直接用
源程序 | c#做的HMI程序模板
WinForm | 一种程序配置文件的读写方法
观察者模式 | .net中的事件
如何调试TCP通信
用队列消息状态机实现TCP通信
VisionPro | 使用卡尺工具测量宽度
有的时候会用到这种界面,很多同类的控件布满一页。对于PLC的HMI应该是家常便饭。一个个拖出来,设置属性,想想手都打哆嗦。
在WinForm中,控件是可以动态创建的。这句话的意思是:用户什么时候需要,就可以自己创建一个。
上面图片的基本思路是:1)拖出一个控件,设置控件的属性;2)复制vs自动生成的代码;3)编写创建控件和设置控件属性的程序。当然,也可以增加事件响应程序。
下面的代码中还隐藏了一个计算行列位置的方法
namespace DynamicallyCreateControls{ public partial class Form1 : Form { public Form1() { InitializeComponent(); // // 动态创建按钮控件 // for (int i = 1; i <=64; i++) { Button button = new Button(); button.Size = new System.Drawing.Size(75, 23); button.TabIndex = 0; button.UseVisualStyleBackColor = true; button.Text = "btn"+i.ToString(); button.Name = "btn"+i.ToString(); button.Location = new System.Drawing.Point(68 + ((i-1)%8) * 80, 56 + ((i-1)/8) * 30); this.Controls.Add(button); } } }}
订阅号@属老鼠的猫