WinForm技巧之自定义条件

WinForm技巧之自定义条件

文章目录


场景

代码


主要通过修改控件的大小和位置来实现的

csharp 复制代码
 private List<Panel> conditionPanels = new List<Panel>();
        int cN = 1;//控件的名字序号
        //自定义多条件查询
        private void button_condition_Click(object sender, EventArgs e)
        {
            if (cN == 3)
            {
                new WarningDialogForm("空间有限只能添加两个条件!").ShowDialog();
                return;
            }
            Panel newPanel = CreateConditionPanel();
            flowLayoutPanel1.Controls.Add(newPanel);
            cN++;
            conditionPanels.Add(newPanel);
        }
        private Panel CreateConditionPanel()
        {
            Panel panel = new Panel();
            panel.Size = new Size(370, 50);

            ComboBox condition = new ComboBox();
            condition.Name = $"condition{cN}";
            condition.DropDownStyle = ComboBoxStyle.DropDownList;
            condition.Items.AddRange(new object[] { "and", "or" });
            condition.Size = new Size(60, 20);
            condition.Location = new Point(1, 5);
            panel.Controls.Add(condition);

            TextBox valueTextBox1 = new TextBox();
            valueTextBox1.Name = $"valueTextBox{cN}";
            valueTextBox1.Size = new Size(95, 20);
            valueTextBox1.Location = new Point(62, 5);
            panel.Controls.Add(valueTextBox1);

            ComboBox conditionComboBox = new ComboBox();
            conditionComboBox.Name = $"conditionComboBox{cN}";
            conditionComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
            conditionComboBox.Items.AddRange(new object[] { "=", "!=", ">", "<", "like" });
            conditionComboBox.Size = new Size(60, 20);
            conditionComboBox.Location = new Point(158, 5);
            panel.Controls.Add(conditionComboBox);

            TextBox valueTextBox2 = new TextBox();
            valueTextBox2.Name = $"valueTextBox{cN}";
            valueTextBox2.Size = new Size(95, 20);
            valueTextBox2.Location = new Point(219, 5);
            panel.Controls.Add(valueTextBox2);

            Button removeButton = new Button();
            removeButton.Name = $"removeButton{cN}";
            removeButton.Text = "-";
            removeButton.Size = new Size(20, 20);
            removeButton.Location = new Point(314, 5);
            removeButton.Click += (s, e) => RemovePanel(panel);
            panel.Controls.Add(removeButton);



            return panel;
        }

        private void RemovePanel(Panel panel)
        {
            flowLayoutPanel1.Controls.Remove(panel);
            conditionPanels.Remove(panel);
            cN--;
            panel.Dispose();
        }
相关推荐
初级代码游戏37 分钟前
C#:程序发布的大小控制 裁剪 压缩
c#·.net·dotnet·压缩·大小·发布·裁剪
量子物理学4 小时前
Modbus TCP
c#·modbus tcp
人工智能AI技术5 小时前
能用C#开发AI吗?
人工智能·c#
龙之叶5 小时前
【Android Monkey源码解析四】- 异常捕获/页面控制
android·windows·adb·monkey
优选资源分享6 小时前
Advanced Renamer v4.20 便携版 批量文件重命名工具
windows·实用工具
自己的九又四分之三站台7 小时前
6. 简单将原生代码改为流式请求
c#
一叶星殇10 小时前
C# .NET 如何解决跨域(CORS)
开发语言·前端·c#·.net
JQLvopkk10 小时前
C#调用Unity实现设备仿真开发浅述
开发语言·unity·c#
开开心心就好11 小时前
PDF密码移除工具,免费解除打印编辑复制权限
java·网络·windows·websocket·pdf·电脑·excel
zxy284722530111 小时前
使用Topshelf部署window后台服务(C#)
c#·安装·topshelf·后台服务