当前位置: 首页 > article >正文

WinForm技巧之自定义条件

WinForm技巧之自定义条件

文章目录

  • WinForm技巧之自定义条件
  • 场景
  • 代码


场景

在这里插入图片描述

在这里插入图片描述

代码


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

 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();
        }

http://www.kler.cn/news/288560.html

相关文章:

  • 1688精选货源API接口升级||1688选品
  • 数学基础 -- 线性代数之行阶梯形
  • JavaScript高级进阶(一)
  • SprinBoot+Vue停车场管理微信小程序的设计与实现
  • C# 上位机开发指南:高效学习建议
  • 力扣刷题--LCP17.速算机器人【简单】
  • ChatGPT 3.5/4新手使用手册(附:案例)
  • LabVIEW电机多次调用
  • 基于RAG多层次的多代理架构来处理时序任务
  • Vue3中 defineProps 与 defineEmits 基本使用
  • hive中datediff函数介绍
  • 二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)
  • verilog 中的for循环用法
  • 深度学习(一)-感知机+神经网络+激活函数
  • Qt 实现部件或者窗口(QWidget)透明效果和其他特殊效果
  • 深度解析TCP与UDP协议
  • 每日一题——第七十九题
  • How to install mysql 5.7 with podman in Ubuntu 24.04
  • 三十二、初识Gin框架
  • chunqiude
  • JS设计模式之“幽灵工厂” - 抽象工厂模式
  • 【贪心算法】区间类算法题(整数替换、俄罗斯套娃、重构字符串等、C++)
  • OpenAI API: Can I remove the line break from the response with a parameter?
  • OpenCVSharp中基本绘图函数
  • Qt Dialog退出事件
  • Golang使用Quic-Go开源库实现Quic客户端和服务端
  • Unity接入飞行遥杆外设
  • 【BES2500x系列 -- RTX5操作系统】Battery模块 -- 创建电池检测定时器 --(十五)
  • 利用Spring Boot的@Transactional注解保障业务数据的一致性
  • 2024 【Delphi 12】苹果ios开发环境配置(五星保姆级)