zoukankan      html  css  js  c++  java
  • C#动态生成控件,并添加事件处理,获取控件值并保存

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    
    namespace SSS
    {
        public partial class Test : Form
        {
            
            public Test()
            {
                InitializeComponent();
            }
    
            private void Test_Load(object sender, EventArgs e)
            {
                int m = 7;
                int n = 2;
    
                //if (m * n < 14)
                //{ 
                //   label(m*n).Text  =
                //}
    
                for (int i = 1; i <= m * n; i++)
                {
                    //动态生成label
                    Label lbl = new Label();
                    lbl.Size = new Size(80, 20);
                    lbl.Location = new Point(5, 30 * i);
                    lbl.Text = "标签条码" + i+":";
                    this.Controls.Add(lbl);
                    
                    //动态生成文本框
                    TextBox txt = new TextBox();
                    txt.Size = new Size(222, 20);
                    txt.Margin = new System.Windows.Forms.Padding(0);
                    txt.Location = new Point(90, 30 * i);
                    //txt.TabIndex = i;
                    txt.Name = "txtSN" + i;
                    //txt.Focus();
                    //txt.SelectAll();
                    this.Controls.Add(txt);
                    txt.KeyPress += new KeyPressEventHandler(txtSN_KeyPress); //添加动态生成控件事件
    
                }
    
                Button btn = new Button();
                btn.Size = new Size(60, 40);
                btn.Location = new Point(45, 30 * m * n + 35);
                btn.Text = "保存";
                btn.Name = "BtnSave";
                //btn.Click(sender,e);
                this.Controls.Add(btn);
                btn.Click += new EventHandler(BtnSave_Click);
    
                Button btn1 = new Button();
                btn1.Size = new Size(60, 40);
                btn1.Location = new Point(195, 30 * m * n + 35);
                btn1.Text = "退出";
                btn1.Name = "BtnExit";
                this.Controls.Add(btn1);
                btn1 .Click +=new EventHandler(btn1_Click);
                //Test.ActiveForm.Height = 800;
                this.Width  = 350;
                this.Height = 32 * m * n + 100;
            }
    
            //将触发此事
            private void txtSN_KeyPress(object sender, KeyPressEventArgs e) 
            {
                if (e.KeyChar == '
    ')
                {
                    Control ctrl = this.GetNextControl(this.ActiveControl, true);
                    while (ctrl is TextBox == false)
                    {
                        ctrl = this.GetNextControl(ctrl, true);
                    }
                    ctrl.Focus();
                }
            }
    
            private void btn1_Click(object sender, EventArgs e)
            {
                this.Dispose(); //释放资源
                this.Close(); //关闭程序(窗口)
            }
            private void BtnSave_Click(object sender, EventArgs e)
            {
                int m = 7;
                int n = 2;
                int i = 1;
                List<string> SN = new List<string>();
                //获取数据
                foreach (Control c in this.Controls)
                {
                    if (c.Name.Equals("txtSN"+i)) //if (c.Name.Equals("txtSN1"))
                    {
                        if (c.Text == "")
                        {
                            MessageBox.Show("条码标签" + i + "为空!请检查!");
                            return ;
                        }
                        //将数据存入数组SN
                        SN.Add(c.Text);
                        i = i + 1;
                    }
                }
                string str = SN[1].ToString ();
                //HashSet检查数组是否重复
                HashSet<string> hs = new HashSet<string>();
                for (int j = 1; j <= SN.Count; j++)
                {
                    if (hs.Contains(SN[j-1]))
                    {
                        MessageBox.Show("条码标签" + j + "数据重复!请检查!");
                        break;
                    }
                    else
                    {
                       hs.Add(SN[j-1]);
                    }
                }
    
            }
    
        }
    }
  • 相关阅读:
    java 求两个数最大值
    java 加法运算
    javs switch 语句
    git合并分支成功,但是push失败(remote: GitLab: You are not allowed to push code to protected branches on this project.)
    python 获取日期以及时间
    1713
    linux shell脚本中的延时
    java 类的继承
    Python3 使用企业微信 API 发送消息
    java if 条件语句
  • 原文地址:https://www.cnblogs.com/Mandy-ZQ-Ma/p/14467973.html
Copyright © 2011-2022 走看看