C#通过代码自动创建文本框数组和复选框数组,并给复现框数组添加事件

C#通过代码创建复选框数组,并给复现框数组添加事件

1.功能需求

Winform界面上通过代码自动创建100个文本框和100个复选框,每个文本框对应一个复现框。通过勾选复选框,确定将对应的文本框内的数据通过串口发送出去。因此用到代码创建文本框和复现框,并对复选框添加事件函数,使任意复选框被勾选时,调用事件函数实现数据的发送。

2.定义100个文本框和100个复选框

	TextBox[,] tbPort1FrameRecvDataCell = new TextBox[20,101]; //设备1,每个帧最多100个元素。
	CheckBox[,] cbPort1FrameRecvCell = new CheckBox[20, 101];//设备1,每个帧最多100个元素。复选框
	for (int i = 1; i <=100; i++)
    {
         tbPort1FrameRecvDataCell[i] = new TextBox();
         tbPort1FrameRecvDataCell[i].Top = lbPort1Fram1Cell.Top;
         if (i == 1) 
         {
             tbPort1FrameRecvDataCell[1].Width = 20;
             tbPort1FrameRecvDataCell[1].Left = lbPort1Fram1Cell.Left + lbPort1Fram1Cell.Width + 2; 
         }
         else 
         {
             tbPort1FrameRecvDataCell[i].Width = 50;
             tbPort1FrameRecvDataCell[i].Left = tbPort1FrameRecvDataCell[i-1].Left + tbPort1FrameRecvDataCell[i-1].Width + 2;
         }
         tbPort1FrameRecvDataCell[ i].ReadOnly = true;
         groupBoxPort1Frame[wFrameNo].Controls.Add(tbPort1FrameRecvDataCell[i]);


         cbPort1FrameRecvCell[i] = new CheckBox();
         cbPort1FrameRecvCell[i].Top = lbPort1Fram1TransYN.Top;
         if (i == 1)
         {
             cbPort1FrameRecvCell[1].Width = 25;
             cbPort1FrameRecvCell[1].Left = tbPort1FrameRecvDataCell[1].Left + 2;
         }
         else
         {
             cbPort1FrameRecvCell[i].Width = 50;
             cbPort1FrameRecvCell[i].Left = tbPort1FrameRecvDataCell[i].Left + 15;
         }
         cbPort1FrameRecvCell[i].Text = i.ToString();
         //添加事件
         cbPort1FrameRecvCell[i].CheckStateChanged += new EventHandler(funPrepareSend1Frame); 

         groupBoxPort1Frame[wFrameNo].Controls.Add(cbPort1FrameRecvCell[i]);

         wPort1FrameCellLength[wFrameNo] = 100; //初始化创建20个元素。
     }

3.定义事件函数

private void funPrepareSend1Frame(object sender, EventArgs e)
{
	tbSentDataTest.Text = string.Empty;  

	for (int i = 1; i <= 100; i++)
	{
		if ((cbPort1FrameRecvCell[i].Checked)&& !(string.IsNullOrEmpty(tbPort1FrameRecvDataCell[i].Text)))
		{

			tbSentDataTest.Text += tbPort1FrameRecvDataCell[i].Text;
		}
	}

}

4.程序运行效果

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值