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

【WinForm UI控件系列】模式输入对话框inputDialog(支持文本,整型、浮点型数字、单选框、多选框、下拉框、颜色)

InputDialog 是一个现代化的输入对话框控件,参考 Ant Design 设计规范,支持多种输入类型(文本型、数字型、单选型、复选型、颜色、密码)

一、示例

模式输入框(带遮罩层)、采用自定义输入框(水印、可清空等)





单选和复选框,采用本控件中的自定义控件

风格:默认,成功,警告,错误

新增下拉框



二、使用说明

InputDialog 输入对话框控件

控件优点

InputDialog 是一个现代化的输入对话框控件,参考 Ant Design 设计规范,支持多种输入类型:

  • 文本输入(使用 InputBox 控件,支持水印提示)
  • 密码输入
  • 数字输入
  • 下拉选择(使用 ComboBoxEx 控件)
  • 单选组输入(使用 RadioEx 控件)
  • 多选组输入(使用 CheckBoxEx 控件)
  • 颜色选择(使用 ColorPicker 控件)

主要特性:

  • 圆角边框设计
  • 遮罩层效果(可选)
  • 淡入动画
  • 主题适配
  • 可拖动标题栏
  • 支持多种输入类型

重要参数说明

静态方法参数

方法参数类型说明
ShowTextInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本(水印)
valueref string输入值
ShowNumberInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本(水印)
valueref decimal数字值
decimalPlacesint小数位数
ShowRadioGroupInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本
optionsList选项列表
selectedValueref string选中值
ShowCheckBoxGroupInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本
optionsList选项列表
selectedValuesref string[]选中值数组
ShowComboBoxInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本
optionsList选项列表
selectedValueref string选中值
ShowColorInputownerIWin32Window父窗口
captionstring对话框标题
promptstring提示文本
valueref Color颜色值

实例属性

属性类型默认值说明
Captionstring“”对话框标题
PromptTextstring“请输入”提示文本
InputTypeInputTypeInputType.Text输入类型
ThemeColorThemeColorTypeThemeColorType.Primary主题颜色类型
TextValuestring“”文本输入值
NumberValuedecimal0数字输入值
DecimalPlacesint0小数位数
OptionsListnew List()选项列表
ColorValueColor#1890ff颜色选择值
ShowOverlaybooltrue是否显示遮罩层
OverlayOpacityint100遮罩层透明度(0-255)

只读属性(返回结果)

属性类型说明
ResultTextstring返回文本值
ResultNumberdecimal返回数字值
ResultOptionsList返回选中选项值列表
ResultColorColor返回选择的颜色
ResultColorHexstring返回颜色的十六进制字符串(如 #1890FF)

InputOption 选项类

publicclassInputOption{publicstringValue{get;set;}// 选项值publicstringText{get;set;}// 显示文本publicboolSelected{get;set;}// 是否选中}

ThemeColorType 主题色类型

ThemeColorType颜色说明
Primary#1890ff品牌主色(蓝色)
Success#52c41a成功色(绿色)
Warning#faad14警告色(橙色)
Error#f5222d错误色(红色)

使用示例

1. 使用静态方法(简单场景)

// 文本输入stringname="";InputDialog.ShowTextInput(this,"输入名称","请输入您的姓名:",refname);// 密码输入stringpassword="";InputDialog.ShowPasswordInput(this,"输入密码","请输入密码:",refpassword);// 数字输入decimalprice=0;InputDialog.ShowNumberInput(this,"输入价格","请输入价格:",refprice,2);// 单选组varoptions=newList<InputOption>{newInputOption("A","选项A"){Selected=true},newInputOption("B","选项B"},newInputOption("C","选项C"}};stringselected="";InputDialog.ShowRadioGroupInput(this,"选择","请选择一项:",options,refselected);// 多选组string[]selectedValues=null;InputDialog.ShowCheckBoxGroupInput(this,"多选","请选择多项:",options,refselectedValues);// 下拉选择varcomboOptions=newList<InputOption>{newInputOption("1","选项一"),newInputOption("2","选项二"),newInputOption("3","选项三")};stringselected="";InputDialog.ShowComboBoxInput(this,"选择","请选择一项:",comboOptions,refselected);// 颜色选择ColorselectedColor=Color.FromArgb(24,144,255);InputDialog.ShowColorInput(this,"选择颜色","请选择主题色:",refselectedColor);

2. 使用扩展方法(支持遮罩层自定义)

首先添加 using 引用:

usingAntdUIEx.Extensions;

然后使用扩展方法:

// 文本输入 - 带遮罩层stringname="";this.ShowTextInputEx("输入名称","请输入您的姓名:",refname,showOverlay:true,overlayOpacity:100);// 文本输入 - 不带遮罩层this.ShowTextInputEx("输入名称","请输入您的姓名:",refname,showOverlay:false);// 密码输入stringpassword="";this.ShowPasswordInputEx("输入密码","请输入密码:",refpassword,showOverlay:true);// 数字输入decimalprice=0;this.ShowNumberInputEx("输入价格","请输入价格:",refprice,2,showOverlay:true,overlayOpacity:80);// 单选组stringselected="";this.ShowRadioGroupInputEx("选择","请选择一项:",options,refselected,showOverlay:true);// 多选组string[]selectedValues=null;this.ShowCheckBoxGroupInputEx("多选","请选择多项:",options,refselectedValues,showOverlay:true);// 下拉选择stringselected="";this.ShowComboBoxInputEx("选择","请选择一项:",comboOptions,refselected,showOverlay:true);

3. 使用实例方式(完整控制)

stringname="";using(vardialog=newInputDialog()){dialog.Caption="输入名称";dialog.PromptText="请输入您的姓名:";dialog.InputType=InputType.Text;dialog.TextValue=name;dialog.ShowOverlay=true;dialog.OverlayOpacity=100;if(dialog.ShowDialog(this)==DialogResult.OK){name=dialog.ResultText;MessageBox.Show("您输入的是:"+name);}}// 颜色选择using(vardialog=newInputDialog()){dialog.Caption="选择颜色";dialog.PromptText="请选择主题色:";dialog.InputType=InputType.Color;dialog.ColorValue=Color.FromArgb(24,144,255);dialog.ThemeColor=ThemeColorType.Primary;if(dialog.ShowDialog(this)==DialogResult.OK){Colorselected=dialog.ResultColor;//色值stringhex=dialog.ResultColorHex;// #1890FF//MessageBox.Show($"选择的颜色:{hex}");}}// 颜色快速示例Colorcolor=Color.Blue;//默认if(InputDialog.ShowColorInput(this,"选择颜色","请选择主题色",refcolor)==DialogResult.OK){groupBox4.HeaderColor=color;//色值应用}

4. 设置主题色

// 设置不同的主题色using(vardialog=newInputDialog()){dialog.Caption="警告提示";dialog.PromptText="请确认您的操作:";dialog.InputType=InputType.Text;dialog.ThemeColor=ThemeColorType.Warning;// 设置为警告色(橙色)dialog.ShowDialog(this);}// 使用成功色using(vardialog=newInputDialog()){dialog.Caption="操作成功";dialog.PromptText="请输入备注:";dialog.InputType=InputType.Text;dialog.ThemeColor=ThemeColorType.Success;// 设置为成功色(绿色)dialog.ShowDialog(this);}// 使用错误色using(vardialog=newInputDialog()){dialog.Caption="错误提示";dialog.PromptText="请重新输入:";dialog.InputType=InputType.Text;dialog.ThemeColor=ThemeColorType.Error;// 设置为错误色(红色)dialog.ShowDialog(this);}

扩展方法说明

InputDialogExtensions 扩展方法类提供了更便捷的调用方式,支持遮罩层参数自定义:

扩展方法对应功能额外参数
ShowTextInputEx文本输入showOverlay, overlayOpacity
ShowPasswordInputEx密码输入showOverlay, overlayOpacity
ShowNumberInputEx数字输入showOverlay, overlayOpacity, decimalPlaces
ShowRadioGroupInputEx单选组输入showOverlay, overlayOpacity
ShowCheckBoxGroupInputEx多选组输入showOverlay, overlayOpacity
ShowComboBoxInputEx下拉选择showOverlay, overlayOpacity

注意事项

  1. 遮罩层设置:静态方法使用默认遮罩层设置,如需自定义请使用扩展方法或实例方式
  2. 清除按钮:InputBox 的 AllowClear 属性设置为 true,但清除按钮仅在输入框有内容时显示
  3. 水印显示:提示文本作为 InputBox 的 Placeholder(水印)显示,输入框为空时可见
  4. 单选/多选:选项值使用 HashSet 去重,避免重复显示
  5. 返回值:通过 ref 参数返回用户输入的值,取消时原值不变

三、后记

更多功能和控件完善中,持续关注,如有需求或好的建议,请留言(xue5zhijing)

http://www.jsqmd.com/news/886009/

相关文章:

  • AI Agent 面试题 958:LangChain框架的核心架构和设计理念详解
  • GIS工程应用记录(AI辅助编程)
  • 通过curl命令快速测试Taotoken大模型API的连通性与返回格式
  • 从零理解 Redisson:Java 分布式工具箱的入门与实战
  • 私有化视频会议解决方案/智能会议管理系统EasyDSS筑牢企业远程培训核心技术底座
  • Chromebook常用配置 - yi
  • Claude多方案对比评估深度复盘(企业级评估框架首次公开)
  • Python 3、VS Code、PyCharm 安装常见问题及解决方案大全(Windows/Mac/Linux)
  • 宁波梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 私有化视频会议系统EasyDSS一个平台,搞定直播、点播、作业、统计—学校终于不用买多套系统了
  • 蓝桥杯软件测试备考:用Python+Selenium搞定Web自动化那些高频考点(附完整代码)
  • TVA注意力层INT8量化配置技巧
  • 泰州梅雨季来临,房屋漏水抓紧修!2026最新房屋漏水维修公司TOP5调研盘点!卫生间免砸砖防水、楼顶外墙、阳光房+地下室渗漏解决方案解析 - 防水百科
  • 感谢雷总!Mimo大模型价值¥659/月的 MAX 套餐,让我免费领到了!
  • Nodejs后端服务如何集成Taotoken实现多模型智能对话
  • 虚幻5 Unrealsharp EditorTick + Nanite雪地踩坑记录
  • http响应的 headers中拿到文件名
  • 开源权重、商业闭源、衍生模型——DeepSeek知识产权边界全解析,一文厘清5类侵权陷阱
  • Jira 自动化语言编码双计数器机器:实现加法与斐波那契数列运算,具备图灵完备性
  • 如何快速搭建ROS机器人仿真环境:完整实战指南
  • 开发多语言翻译服务时如何利用多模型能力优化效果与成本
  • 2026年5月西安GEO优化服务商TOP5:AI搜索与豆包排名实战推荐 - 资讯快报
  • 嵌入式工程师代码能力综合评估标准
  • 5个步骤掌握FanControl:Windows风扇控制终极静音方案
  • 2026年国内金融科技五大排行:融资担保信息系统公司深度解析 - 十大品牌榜
  • 打造XBEE封装BLE112蓝牙模块:硬件设计、射频布局与调试全攻略
  • 鸣潮工具箱WaveTools:游戏体验优化的终极免费解决方案
  • Android Framework P4 - ServiceManager 进程
  • LaTeX公式一键转Word:3步告别数学公式编辑烦恼
  • 2026年横评10款降AIGC网站:一键锁定高效助手!