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

C#之Winfrom自定义输入框对话框。

如果你需要一个带有输入框的对话框,并在输入完成后接收输入的值,你可以使用自定义窗体来实现。以下是一个示例代码:创建一个继承自 Form 的自定义窗体类,命名为 InputDialogForm,并将窗体上放置一个文本框(TextBox)和一个确定按钮(Button)。
public class InputDialogForm : Form
{private TextBox textBox;private Button confirmButton;public string UserInput { get; private set; }public InputDialogForm(){InitializeComponents();}private void InitializeComponents(){textBox = new TextBox();textBox.Location = new Point(10, 10);textBox.Size = new Size(200, 20);confirmButton = new Button();confirmButton.Location = new Point(10, 40);confirmButton.Text = "确定";confirmButton.Click += ConfirmButton_Click;Controls.Add(textBox);Controls.Add(confirmButton);FormBorderStyle = FormBorderStyle.FixedDialog;StartPosition = FormStartPosition.CenterScreen;AcceptButton = confirmButton;Text = "输入框";ClientSize = new Size(220, 80);MaximizeBox = false;}private void ConfirmButton_Click(object sender, EventArgs e){UserInput = textBox.Text;DialogResult = DialogResult.OK;}
}

在你的程序中,在需要触发输入框的地方添加一个按钮或其他事件处理器。例如,你可以在按钮点击事件中执行相应的代码和逻辑。

private void Button_Click(object sender, EventArgs e)
{using (InputDialogForm inputDialog = new InputDialogForm()){if (inputDialog.ShowDialog() == DialogResult.OK){string userInput = inputDialog.UserInput;if (ValidateInput(userInput)){// 输入验证通过后,继续执行后面的代码ContinueExecution();}else{// 输入验证失败,可以进行相应的处理(如提示错误信息)ShowErrorMessage();}}}
}private bool ValidateInput(string userInput)
{// 进行输入验证的逻辑,根据需求自定义// 返回 true 表示验证通过,返回 false 表示验证失败if (!string.IsNullOrEmpty(userInput)){return true;}return false;
}private void ContinueExecution()
{// 在输入验证通过后,继续执行后面的代码// 可以在这里编写需要执行的逻辑
}private void ShowErrorMessage()
{// 在输入验证失败时,可以弹出错误提示框或进行其他处理MessageBox.Show("输入验证失败,请重新输入。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
}

通过以上步骤,你可以在 WinForms 程序中创建一个带有输入框的自定义窗体,并在点击确定按钮后获取用户输入的值。确保根据实际需求修改输入验证逻辑和错误处理方式。

相关文章:

C#之Winfrom自定义输入框对话框。

如果你需要一个带有输入框的对话框,并在输入完成后接收输入的值,你可以使用自定义窗体来实现。以下是一个示例代码:创建一个继承自 Form 的自定义窗体类,命名为 InputDialogForm,并将窗体上放置一个文本框(…...

docker制作镜像

docker制作镜像 docker制作镜像有两种: 1.docker build dockerfile 2.基于容器制作镜像 基于容器制作镜像 语法:docker commit options 容器名称 参数: -a:作者 -c:修改dockfile创建的镜像 -m:提交…...

广西茶叶元宇宙 武隆以茶为媒 推动茶文旅产业融合发展

8月4日,重庆市武隆区启动为期3天的“武隆首届玩茶荟”。本次活动以“中国最美玩茶地——武隆”为主题,吸引众多国内知名专家、茶企和茶馆相关负责人,共同探索武隆茶文旅融合发展新路径和新业态。 广西茶叶元宇宙:广西茶叶元宇宙 …...

alibaba.excel库使用

目录 依赖 实体类 Controller Service 所用到的接口及工具类 ExcelUtil ExcelListener DefaultExcelListener DefaultExcelResult ExcelResult JsonUtils SpringUtils StreamUtils ValidatorUtils SpringUtils 使用alibab中的excel库来实现excel的导入、导出 依赖 <de…...

机器学习模型选择评估和超参数调优

如何选择模型&#xff1f;如何评估模型&#xff1f;如何调整模型的超参数&#xff1f;模型评估要在测试集上进行&#xff0c;不能在训练集上进行&#xff0c;否则评估的准确率总是100%。所以&#xff0c;一般我们准备好数据集后&#xff0c;要将其分为训练集和测试集&#xff0…...

深入浅出 Typescript

TypeScript 是 JavaScript 的一个超集&#xff0c;支持 ECMAScript 6 标准&#xff08;ES6 教程&#xff09;。 TypeScript 由微软开发的自由和开源的编程语言。 TypeScript 设计目标是开发大型应用&#xff0c;它可以编译成纯 JavaScript&#xff0c;编译出来的 JavaScript …...

Vue3和TypeScript项目-移动端兼容

1 全局安装typescript 2 检测安装成功 3 写的是ts代码&#xff0c;但是最后一定要变成js代码&#xff0c;才能在浏览器使用 这样就会多一个js文件 3 ts语法 数组语法 对象语法 安装vue3项目 成功后进入app。安装依赖。因为我们用的是脚手架&#xff0c;要引入东西的时候不需要…...

基于STM32CubeMX和keil采用通用定时器中断实现固定PWM可调PWM波输出分别实现LED闪烁与呼吸灯

文章目录 前言1. PWM波阐述2. 通用定时器2.1 为什么用TIM142.2 TIM14功能介绍2.3 一些配置参数解释2.4 PWM实现流程&中断2.4.1 非中断PWM输出(LED闪烁)2.4.2 中断PWM输出(LED呼吸灯) 3. STM32CubeMX配置3.1 GPIO配置3.2 时钟配置3.3 定时器相关参数配置3.4 Debug配置3.5 中…...

mysql大表的深度分页慢sql案例(跳页分页)

1 背景 有一张表&#xff0c;内容是 redis缓存中的key信息&#xff0c;数据量约1000万级&#xff0c; expiry列上有一个普通B树索引。 -- test.top definitionCREATE TABLE top (database int(11) DEFAULT NULL,type varchar(50) DEFAULT NULL,key varchar(500) DEFAULT NUL…...

集中/本地转发、AC、AP

1.ADSL ADSL MODEM&#xff08;ADSL 强制解调器&#xff09;俗称ADSL猫 ADSL是一种异步传输模式&#xff08;ATM)。ADSL是指使用电话线上网&#xff0c;需要专用的猫&#xff08;Modem)&#xff0c;在上网的时候高频和低频分离&#xff0c;所以上网电话两不耽误&#xff0c;速…...

Spring集成Seata

Seata的集成方式有&#xff1a; 1. Seata-All 2. Seata-Spring-Boot-Starter 3. Spring-Cloud-Starter-Seata 本案例使用Seata-All演示&#xff1a; 第一步&#xff1a;下载Seata 第二步&#xff1a;为了更好看到效果&#xff0c;我们将Seata的数据存储改为db 将seata\sc…...

三种方式创建对象的几种方式及new实例化时做了什么?

创建对象的几种方式 利用对象字面量创建对象 const obj {}2.利用 new Object创建对象 const obj new Object()3.使用 构造函数实例化对象 function Fn(name) {this.name name} const obj new Fn(张三) console.log(obj.name); //张三为什么要用构造函数的形式&#xff1…...

vue2-vue实例挂载的过程

1、思考 new Vue()这个过程中究竟做了什么&#xff1f;过程中是如何完成数据的绑定&#xff0c;又是如何将数据渲染到视图的等等。 2、分析 首先找到vue的构造函数。 源码位置&#xff1a;/src/core/instance/index.js options是用户传递过来的配置项&#xff0c;如data、meth…...

C++ 右值引用案例

C 右值引用案例 右值引用&#xff08;Rvalue reference&#xff09;是 C11 引入的新特性&#xff0c;它的主要意义是实现移动语义&#xff08;Move semantics&#xff09;和完美转发&#xff08;Perfect forwarding&#xff09;。这两者都可以提高代码的性能和灵活性。 一、移…...

2.文件的逻辑结构

第四章 文件管理 2.文件的逻辑结构 顺序文件采用顺序存储则意味着各个逻辑上相邻的记录在物理上也是相邻的存储的。所以如果第0号记录的逻辑地址为0的话&#xff0c;则i号记录的逻辑为i *L。 特别的如果这个定长记录的顺序文件采用串结构&#xff0c;也就是这些记录的顺序和他…...

20天学rust(一)和rust say hi

关注我&#xff0c;学习Rust不迷路 工欲善其事&#xff0c;必先利其器。第一节我们先来配置rust需要的环境和安装趁手的工具&#xff0c;然后写一个简单的小程序。 安装 Rust环境 Rust 官方有提供一个叫做 rustup 的工具&#xff0c;专门用于 rust 版本的管理&#xff0c;网…...

牢记这16个SpringBoot 扩展接口,写出更加漂亮的代码

1、背景 Spring的核心思想就是容器&#xff0c;当容器refresh的时候&#xff0c;外部看上去风平浪静&#xff0c;其实内部则是一片惊涛骇浪&#xff0c;汪洋一片。Springboot更是封装了Spring&#xff0c;遵循约定大于配置&#xff0c;加上自动装配的机制。很多时候我们只要引…...

c++两种设计模式 单例和工厂模式

c两种设计模式 单例和工厂模式 一.单例 1.单例的概念 1.当前的类最多只能创建一个实例 2.当前这个唯一的实例&#xff0c;必须由当前类创建&#xff08;自主创建&#xff09;&#xff0c;而不是调用者创建 3.必须向整个系统提供全局的访问点&#xff0c;来获取唯一的实例 …...

2023-08-05——JVM 栈

栈 stack 栈&#xff1a;数据结构 程序数据结构算法 栈&#xff1a;先进后出&#xff0c;后进先出 好比一个&#xff1a;桶 队列&#xff1a;先进先出&#xff08;FIFO &#xff1a;First Input First Out&#xff09; 好比一个&#xff1a;管道 栈&#xff1a;喝多了吐。队列…...

Camera之PhysicalCameraSettingsList/SurfaceMap/CameraMetadata/RequestList的关系(三十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…...

嵌入式LCD与RTC驱动实战:从时序模拟到系统整合

1. 项目概述&#xff1a;当LCD遇见RTC&#xff0c;一个经典嵌入式显示方案的深度剖析最近在整理一个老项目的资料&#xff0c;翻出来一个挺有意思的模块&#xff1a;用一块字符型LCD屏&#xff0c;搭配一颗实时时钟芯片&#xff0c;实现一个带时间显示的简易信息板。这个组合—…...

FPGA时序约束避坑指南:Set Bus Skew与Set Max Delay到底有什么区别?

FPGA时序约束深度解析&#xff1a;Set Bus Skew与Set Max Delay的核心差异与工程实践 在FPGA设计的时序收敛过程中&#xff0c;工程师们常常面临一个关键抉择&#xff1a;何时使用Set Max Delay&#xff0c;何时又该选择Set Bus Skew&#xff1f;这两种约束看似都与路径延迟相关…...

MySQL-进阶篇-锁

温馨提示&#xff1a;建议在PC端浏览~锁概述介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中&#xff0c;除传统的计算资源&#xff08;CPU、RAM、I/O&#xff09;的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性…...

FreeJoy固件刷写与配置全攻略:从STM32CubeProgrammer到中文版Configurator

FreeJoy控制器全流程实战指南&#xff1a;从固件刷写到高级配置 在开源硬件和DIY控制器领域&#xff0c;FreeJoy项目以其灵活性和低成本优势吸引了大量创客和游戏外设爱好者。不同于商业产品的封闭性&#xff0c;基于STM32F103C8T的FreeJoy解决方案让用户能够完全掌控控制器的每…...

解密ASCII图表魔法:ditaa将文本艺术转化为专业图表的技术揭秘

解密ASCII图表魔法&#xff1a;ditaa将文本艺术转化为专业图表的技术揭秘 【免费下载链接】ditaa ditaa is a small command-line utility that can convert diagrams drawn using ascii art (drawings that contain characters that resemble lines like | / - ), into proper…...

社会风气何以如此?渡劫未彻底,继续渡劫。从为人民服务到为节点服务

社会风气何以如此&#xff1f;渡劫未彻底&#xff0c;继续渡劫。从为人民服务到为节点服务。 Jianbing Zhu 1 1 ECT-OS-JiuHuaShan 文明实践室 ORCID: 0009-0006-8591-1891 DOI: 10.5281/zenodo.20302480 Email: ect-os-jiuhuashanzohomail.cn 预印本提交&#xff1a;202…...

为GitHub开源项目配置统一的大模型调用与成本管控方案

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 为GitHub开源项目配置统一的大模型调用与成本管控方案 对于开源项目的维护者而言&#xff0c;为项目集成AI能力正变得越来越普遍。…...

auditd:Linux 系统审计日志,记录谁动了你的服务器

auditd&#xff1a;Linux 系统审计日志&#xff0c;记录谁动了你的服务器 服务器被入侵后&#xff0c;管理员面临的第一个问题往往不是"怎么修复"&#xff0c;而是"到底发生了什么"——攻击者登录了哪个账号&#xff1f;修改了哪些文件&#xff1f;执行了什…...

从STM32到RISC-V:如何快速将你的4P OLED驱动移植到CH32V307上

从STM32到RISC-V&#xff1a;如何快速将你的4P OLED驱动移植到CH32V307上 对于习惯了STM32标准库开发的工程师来说&#xff0c;第一次接触RISC-V架构的CH32V307系列时&#xff0c;最迫切的需求往往是如何快速复用现有的硬件驱动代码。本文将聚焦4P OLED屏幕的驱动移植&#xff…...

别再只会用torchvision.models了!手把手教你从零理解ResNet18的PyTorch实现(附完整代码)

从零构建ResNet18&#xff1a;深入理解PyTorch实现与模型定制技巧 在深度学习领域&#xff0c;ResNet已经成为计算机视觉任务中不可或缺的基础架构。许多开发者习惯于直接调用torchvision.models.resnet18()这一行魔法代码&#xff0c;却对背后的实现细节知之甚少。本文将带你从…...