WinForm对话框详解:信息框、文件对话框、功能对话框

news2024/11/14 22:33:51

文章目录

    • 信息框
    • 文件对话框
    • 功能对话框

对话框是开发中经常用到的控件,甚至在上古的MFC编程中,默认就是把一个对话框编辑成窗口。winForm提供了多种不同的对话框,包括信息框、文件对话框、功能对话框等,下面逐个演示这些消息框。

但在此之前,需要稍微做一点准备工作,新建一个winForm工程,拖动一个TextBox用于信息回传,命名为tbInfo。如果不熟悉winform,可参考这篇

  • 💎Winform,最友好的桌面GUI框架|源码

本文源码地址:源码

信息框

拖动一个按钮,文本内容为弹出信息框,名字改为btnMsgBox,双击创建点击函数

private void btnMsgBox_Click(object sender, EventArgs e)
{
    var res = MessageBox.Show("我是信息框");
    tbInfo.AppendText(res.ToString());
}

上面是最简单的信息框测试函数,通过调用MessageBox中的静态方法Show,实现了点击按钮弹出信息框的功能,效果如下

在这里插入图片描述

MessageBox.Show提供了多种重载方案,但所有重载方案都将返回一个DialogResult的枚举类型,其定义如下

012345671011
NoneOKCancelAbortRetryIgnoreYesNoTryAgainContinue

这些枚举类型,将在相应的功能信息框中得到体现,例如下面的代码

private void btnMsgBox_Click(object sender, EventArgs e)
{
    var res = MessageBox.Show("选择哪一个?", "是否取消", MessageBoxButtons.YesNoCancel);
    tbInfo.AppendText(res.ToString());
}

效果如下

在这里插入图片描述

文件对话框

WinForm提供了多种文件对话框,包括

  • OpenFileDialog 文件选择对话框
  • SaveFileDialog 文件保存对话框
  • FolderBrowserDialog 文件夹选择对话框

这三个对话框均通过ShowDialog函数来进行弹出交互,其返回值与MessageBox.Show一样,都是枚举类型DialogResult

但很显然,我们使用文件对话框,要的并不是一个OK或者取消标志,而是选择的文件或者文件夹名字。在OpenFileDialogSaveFileDialog中,提供了FileName属性,用于保存选择或者新建的文件名;文件夹对话框则提供了SelectedPath属性,表示选择的文件夹。

由于三者大同小异,故下面先演示一下文件夹选择对话框,在文件夹对话框中,通过设置InitialDirectory可以设置默认打开的文件夹

示例如下

private void btnSlctFolder_Click(object sender, EventArgs e)
{
    var fbd = new FolderBrowserDialog();
    fbd.InitialDirectory = Directory.GetCurrentDirectory();
    var res = fbd.ShowDialog();
    tbInfo.AppendText($"{res}\r\n");
    tbInfo.AppendText(fbd.SelectedPath);
}

效果如下

在这里插入图片描述

在使用文件对话框时,会经常遇到选择特定格式的问题,这时通过设置Filter参数,可以实现只显示特定的文件格式,代码为

private void btnOpenFile_Click(object sender, EventArgs e)
{
    var ofd = new OpenFileDialog();
    ofd.Filter = "C#文件(*.cs)|*.cs";
    var res = ofd.ShowDialog();
    tbInfo.AppendText($"{res}\r\n");
    tbInfo.AppendText(ofd.FileName);
}

效果如下

在这里插入图片描述

功能对话框

WinForm中,可以非常便捷地设置颜色、字体以及打印机,并分别用下面三个对话框表示。

对话框简介重要属性
ColorDialog颜色对话框Color
FontDialog字体对话框Font
PrintDialog打印设置PrinterSettings

这些对话框的逻辑大同小异,区别无非是在选额特定内容后,存储这些内容的属性,即上表中的重要属性。

使用效果如下

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487945.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

欧姆龙PLC仿真环境搭建及通信测试

前言 欧姆龙PLC是工控领域市场率较高的品牌之一,有低端CP/CH系列,中端CJ系列,高端NX/NJ系列。对于上位机开发来说,主要的协议有Hostlink协议、FinsTCP/UDP协议、EtherNetIP协议,今天主要跟大家分享一下,我…

《互联网安全产品漏洞管理规定》

《网络产品安全漏洞管理规定》由工业和信息化部、国家互联网信息办公室、公安部联合印发,自2021年9月1日起施行。 该《规定》明确,任何组织或者个人不得利用网络产品安全漏洞从事危害网络安全的活动,不得非法收集、出售、发布网络产品安全漏洞…

图片png怎么转成pdf格式?

图片png怎么转成pdf格式?相信很多上班的小伙伴们都会遇到类似的问题,需要将公司的图片宣传册等资料发送给客户,但是公司宣传册本身是一页一页的图片文件,如果这样发送了就显得很不专业或者说比较杂乱!所以,…

scrapy 爬虫中间件的学习

Scrapy中间件是一个处理Scrapy请求和响应的机制。中间件可以在请求或响应被Scrapy引擎处理之前或之后对其进行修改或操作,用于实现诸如缓存、代理、用户代理等功能。 Scrapy中间件的作用主要有以下几个方面: 1、对请求的处理:可以在请求被S…

【Spark练习】RDD分区操作

练习1:行动(Action)操作算子方法 任务1: reduce // 1. 数组 val x sc.parallelize(List(1,2,3,4)) val y x.reduce( (a,b) > a b) // 2. 列表 val rdd sc.parallelize(List(1,2,3,4)) // 求和,将各个数累加,依次合并 下面两种方式相…

读书笔记// 《数据产品经理》

书名:写给数据产品经理新人的工作笔记 出版时间:2020年10月 本书以数据产品经理角色的定位和合作关系为切入点,站在整个数据体系的视角,从工作流程的角度剖析数据需求沟通和判断的过程、指标体系搭建的过程,同时介绍了…

Swift 中的 async/await ——代码实例详解

前言 async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift 中的并发性意味着允许多段代码同时运行。这是一个非常简化的描述,但它应该让你知道 Swift 中的并发性对你的应用程序的性能是多么重要。有了新的 async 方法和 await 语句&am…

《人工智能概论》课程重点总结

目录 遗传算法相关参数问题 种群规模、迭代次数、交叉率、变异率对算法的影响 A*算法中open表和close表的作用 为什么A*算法中open表是增长的 启发式函数h(n)取值的影响 A*算法可以找到最优解的条件 模式识别系统的组成 有监督学习和无监督学习的区别 模型评估三大原则…

Baklib推荐:关于建设企业知识管理的有效方法

随着信息化和互联网技术的不断发展,企业面临着海量的信息和知识,如何有效地管理和利用这些信息和知识已经成为了企业发展的关键问题之一。企业知识管理是指企业利用信息技术手段,对企业内部的知识进行系统化、集成化、共享化管理,…

MPSOC(ZU9EG/ZU15EG)PCIE架构高性能数据预处理 FMC载板设计资料

板卡概述 PCIE707 是一款基于 PCIE 总线架构的高性能数据预处理 FMC载板,板卡具有 1 个 FMC(HPC)接口,1 路 PCIe x4 主机接口、 1 个 RJ45 千兆以太网口、2 个 QSFP 40G 光纤接口。板卡采用 Xilinx 的高性能 UltraScale MPSOC 系…

「蓝桥杯」积木大赛

积木大赛 题目描述 春春幼儿园举办了一年一度的"积木大赛"。今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为 1 的积木组成,第 i 块积木的最终高度需要是 h_i 。 在搭建开始之前,没有任何积木(可…

Vue3中双向数据绑定与Pinia实践+JS数据引用的循环修改问题

Vue3 Pinia VUE3虽然出了很久了,但是很少深入研究,目前项目上遇到了一些问题,所以做个Note解决一下疑问: v-bind/v-model怎么与Pinia进行结合Object/Array数据大量处理时,为何有的修改不生效组合API与选项API选择 (…

赛道冠军为AI狂飙:实在智能即将重归福州,亮相第六届数字中国建设峰会

2023年4月26日至30日,第六届数字中国建设峰会将在福建省福州市举行。本届峰会以“加快数字中国建设,推进中国式现代化”为主题,由国家网信办、国家发展改革委、科技部、工业和信息化部、国务院国资委、福建省人民政府共同主办。 作为我国信息…

代码随想录算法训练营第二十五、二十七天 | 细节很多、树枝去重和树层去重的区分是难点、分割

216.组合总和III 文档讲解:代码随想录 (programmercarl.com) 视频讲解:和组合问题有啥区别?回溯算法如何剪枝?| LeetCode:216.组合总和III_哔哩哔哩_bilibili 状态:能做出来。和上一题没什么区别。思路直接…

SpringCloud微服务的熔断、限流、降级是怎么回事?

概述: 在开发公司商城项目时,由于采用的是微服务架构,每个模块之间使用OpenFeign组件进行通信,在遇到高并发时,为了保证系统的可用性和 可靠性,我们使用了阿里的Alibaba的Sentinel组件进行降级、限流和熔断…

vue2实现高德地图 JSAPI 2.0轨迹回放组件(MoveAnimation)

vue2实现高德地图 JSAPI 2.0轨迹回放组件(MoveAnimation) 声明: 本人是做java后端的,组件抽取不是很规范请大家见谅 前提: 需要注册高德开放平台,之后创建应用并且开通Web端(JS API)平台,然后拿到securityJsCode和key 实现效果: 1. 基础抽取 注意: 将securityJsCode和key修改为…

OpenGL(四)——纹理

目录 一、前言 二、纹理环绕方式 三、纹理过滤 3.1 邻近过滤 3.2 线性过滤 3.3 多级渐远纹理 四、加载、创建纹理 4.1 数据输入 4.2 生成并加载纹理 4.3 应用纹理坐标 4.4 顶点着色器配置纹理 4.5 片段着色器配置纹理 4.6 显示纹理 五、纹理单元 一、前言 为每个…

云原生技术概谈

云原生技术概谈 说起“云原生技术”,大家可能有点懵,只闻其声,不明其意。但是云原生背后典型的几个公司或者技术产品的名称可能大家经常听到: 比如容器技术的代表公司docker;容器编排技术开源产品kubernetes&#xff0…

推荐算法实战项目:DeepCross 原理以及案例实战(附完整 Python 代码)

本文要介绍的是由斯坦福大学联合Google的研究人员发表的论文《Deep & Cross Network for Ad Click Predictions》中提出的Deep&Cross模型,简称DCN。 DCN模型是Wide&Deep的改进版本,其中Deep部分的设计思路与Wide&Deep没有发生本质的变化…

计算机视觉的应用3-批量图片风格迁移之素描图片生成的应用

大家好,我是微学AI,今天给大家介绍一下计算机视觉的应用3-批量图片生成素描图片的应用,将一张图像转换为素描风格的图像的其实是模拟了人类视觉在观察物体时受到的光照条件。素描风格的图像在灰度值上表现出明暗交替的效果,这种效…