-
2019-01-15 16:59:24
在使用C#做Windows窗体应用的时候,我遇到了一个问题:
我想在一个窗体中弹出一个带有文本框、标签、按钮等常用
控件的对话框,换句话说就是自己定制的“对话框”,我们知
道,在MFC里这样是可以是实现的,但是在C#中,只是给定
了几种特定的对话框形式,自身定制并不像MFC那样直接添
加控件就能实现。
C#中是这样的一个思路:我们可以采用两个独立的窗体,然
后将另一个独立的窗体看作是一个对话框类型的窗体,然后
我们就可以直接生成自身定制的对话框窗体了。
C# 窗体对象中有一个 ShowDialog() 方法,这个方法将窗体
显示为模式对话框,返回值为 DialogResult(跟正常的对话
框结果例如OK、Cancel等相同)。
更多相关内容 -
C#嵌套窗体,先弹出子窗体,再弹出对话框
2021-03-17 16:22:03内容索引:C#源码,菜单窗体,嵌套窗体,对话框 C#嵌套窗体,先弹出子窗体,再弹出对话框,c#2008编写的,有没有兴趣看一下呢?其实也没有什么,一个入门级的窗体实例,运行后如上图所示的样子。 -
C#窗体编程:对话框
2021-01-29 16:55:37阻塞的效果: 1 方法卡在ShowDialog 这一行,不往下执行 2 对话框窗口可以活动,后面的父窗口不可以活动 可以理解为,ShowDialog()内部有一个while循环,在一直等待窗口关闭事件。 对话框属性 (外观) Text 窗口标题...手动添加事件
public Form1() { InitializeComponent(); testButton.Click += new EventHandler(this.OnTest); button1.Click += new EventHandler(this.OnTest); button1.Name = "button1"; testButton.Name = "hhh"; } public void OnTest(object sender, EventArgs e) { Button btn = sender as Button; MessageBox.Show($"大家好 {btn.Name} "); }
对话框
系统自带的一些对话框类
OpenFileDialog 打开文件对话框 SaveFileDialog 保存文件对话框 FolderBrowserDialog 目录选择对话框 ColorDialog 颜色选择对话框 FontDialog 字体选择对括框
对话框内存销毁
Form窗口对象含有非托管资源,需要手工销毁
对话框的阻塞
示例: MyDialog dlg = new MyDialog(); dlg.ShowDialog(this); dlg.Dispose(); 阻塞的效果: 1 方法卡在ShowDialog 这一行,不往下执行 2 对话框窗口可以活动,后面的父窗口不可以活动 可以理解为,ShowDialog()内部有一个while循环,在一直等待窗口关闭事件。
对话框属性
(外观) Text 窗口标题 (窗口样式) MaximizeBox 最大化按钮 (窗口样式) MinimizeBox 最小化按钮 (窗口样式) ShowInTaskbar 是否在任务栏显示 (布局) StartPosition 窗口显示位置 (外观) FormBorderStyle 边框设定/是否可以调整大小
对话框的返回
当对话框关闭时,ShowDialog() 返回一个值 示例: MyDialog dlg = new MyDialog(); DialogResult rc = dlg.ShowDialog(); dlg.Dispose(); 怎么让对话框关闭呢? 设置 Form.DialogResult 属性时,可以关闭对话框 示例: void okButton_Click(object sender, EventArgs e) { this.DialogResult = DialogResult.OK; } 并且,这个 DialogResult 就是 ShowDialog() 的返回值 有输入框的时候,取得用户输入 先判断用户是点了‘确定’还是‘取消’ 再从对话框中取得用户的输入值 DialogResult rc = dlg.ShowDialog(); if(rc == DialogResult.OK) { string str = dlg.edit.Text; …… } 设置 DialogResult,有两层作用: 关闭对话框 设定返回值, 即 ShowDialog() 返回的值 先判断,再处理,最后关闭
对话框的默认响应
属性中设置 AcceptButton: 当按回车键时触发 CancelButton: 当按ESC键时触发 另外,当点叉号关闭窗口时,相当于Cancel
-
非模式对话框与父窗体之间消息通信,设置透明窗体
2012-05-09 20:59:11模式对话框作为父窗体,与非模式子对话框之间通过自定义消息通讯,同时设置子对话框为透明窗体。 -
透明窗体—双对话框
2012-09-29 09:14:17透明窗体—双对话框:一对话框只显示图片,另一对话框只显示控件,整体达到背景透明,控件不透明效果 -
VC_SDK例子经典_菜单栏加速键_多窗体对话框.zip
2021-05-03 20:42:39VC_SDK例子_菜单栏加速键_多窗体对话框.zip -
C#324-窗体对话框 源代码
2017-06-20 22:17:37C#324-窗体对话框 源代码 -
VB.NET调用常用窗体、对话框的例子集
2021-05-07 03:02:25摘要:VB源码,界面编程,对话框,弹出框 调用常用窗体、对话框的例子集,比如调用一些对话框、弹出框、提示框、某模块的面板等,帮助了解与Windows系统的相关配合功能的实现。 -
VC++使用位图绘制对话框和窗体.rar
2021-03-08 13:09:39VC++使用位图绘制对话框和窗体 -
js showModalDialog 弹出对话框的简单实例(子窗体)
2020-12-10 12:49:30<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”showdialog_dialog.aspx.cs” Inherits=”WSHelpDoc_showdialog_dialog” %> 代码如下:<!DOCTYPE html PUBLIC “-//W3C//DTD ...<head -
VC++在窗体对话框中打开HTML网页
2021-03-17 12:58:28内容索引:VC/C++源码,界面编程,IE,浏览器 闲来无事,做下无聊程序,编译环境VC++,在窗体对话框中打开新的IE窗口,或是HTML网页,对话框显示/打开网页,利用默认浏览器打开网页: 1)对话框内部显示HTML网页. 2)... -
MFC设置对话框焦点的方法简述
2020-12-26 04:17:52将需要被设置到焦点的空间的tab order设为1. 2. 对话框的OnInitDialog返回FALSE。解释如下:(摘抄至msdn) If OnInitDialog returns nonzero, Windows sets the input focus to the first control in the dialog ... -
Qt的对话框与窗口--Qt中主要的窗体类及其用途
2022-05-09 14:42:35Qt中主要的窗体类及其用途 常用的窗体基类是QWidget、QDialog和QMainWindow,在创建GUI应用程序时选择窗体基类就是从这3个类中选择。QWidget直接继承于QObject,是QDialog和QMainWindow的父类,其他继承于...Qt中主要的窗体类及其用途
常用的窗体基类是QWidget、QDialog和QMainWindow,在创建GUI应用程序时选择窗体基类就是从这3个类中选择。QWidget直接继承于QObject,是QDialog和QMainWindow的父类,其他继承于QWidget的窗体类还有QSplashScreen、QMdiSubWindow和QDesktopWidget。另外还有一个类QWindow,它同时从QObject和QSurface继承。这些类的继承关系如图所示。
这些窗体类的主要特点和用途如下。QWidget:在没有指定父容器时可作为独立的窗口,指定父容器后可以作为容器的内部组件。
QDialog:用于设计对话框,以独立窗口显示。
QMainWindow:用于设计带有菜单栏、工具栏、状态栏的主窗口,一般以独立窗口显示。
QSplashScreen:用作应用程序启动时的splash窗口,没有边框。
QMdiSubWindow:用于为QMdiArea提供一个子窗体,用于MDI(多文档)应用程序的设计。
QDesktopWidget:具有多个显卡和多个显示器的系统具有多个桌面,这个类提供用户桌面信息,如屏幕个数、每个屏幕的大小等。
QWindow:通过底层的窗口系统表示一个窗口的类,一般作为一个父容器的嵌入式窗体,不作为独立窗体。关于窗体类的重要函数
1.setAttribute()函数
setAttribute()函数用于设置窗体的一些属性,其函数原型为:
void QWidget::setAttribute(Qt::WidgetAttribute attribute, bool on = true)
枚举类型Qt::WidgetAttribute定义了窗体的一些属性,可以打开或关闭这些属性。枚举类型Qt::WidgetAttribute 常用的常量及其意义见表1。
表1 枚举类型Qt::WidgetAttribute 常用的常量 常量 意义 Qt::WA_AcceptDrops 允许窗体接收拖放来的组件 Qt::WA_DeleteOnClose 窗体关闭时删除自己,释放内存 Qt::WA_Hover 鼠标进入或移出窗体时产生paint事件 Qt::WA_AcceptTouchEvents 窗体是否接受触屏事件 2.setWindowFlags()函数
setWindowFlags()函数用于设置窗体标记,其函数原型是:
void QWidget::setWindowFlags(Qt::WindowFlags type)
参数type是枚举类型Qt::WindowType的值的组合,用于同时设置多个标记。
另外一个函数setWindowFlag()用于一次设置一个标记,其函数原型为:
void QWidget::setWindowFlag(Qt::WindowType flag, bool on = true)
可单独打开或关闭某个属性。枚举类型Qt::WindowType常用的常量值见表2。
表2 枚举类型Qt::WindowType常用的常量 常量 意义 表示窗体类型的常量 Qt::Widget 这是QWidget类的缺省类型。这种类型的窗体,如果它有父窗体,就作为父窗体的子窗体;否则就作为一个独立的窗口 Qt::Window 表明这个窗体是一个窗口,通常具有窗口的边框、标题栏,而不管它是否有父窗体 Qt::Dialog 表明这个窗体是一个窗口,并且要显示为对话框(例如在标题栏没有最小化、最大化按钮)。这是QDialog类的缺省类型 Qt::Popup 表明这个窗体是用作弹出式菜单的窗体 Qt::Tool 表明这个窗体是工具窗体,具有更小的标题栏和关闭按钮,通常作为工具栏的窗体 Qt::ToolTip 表明这是用于Tooltip消息提示的窗体 Qt::SplashScreen 表明窗体是splash屏幕,是QSplashScreen类的缺省类型 Qt::Desktop 表明窗体是桌面,这是QDesktopWidget类的类型 Qt::SubWindow 表明窗体是子窗体,例如QMdiSubWindow就是这种类型 控制窗体显示效果的常量 Qt::MSWindowsFixedSizeDialogHint 在Windows平台上,使窗口具有更窄的边框,用于固定大小的对话框 Qt::FramelessWindowHint 创建无边框窗口 定制窗体外观的常量,要定义窗体外观,需要先设置 Qt::CustomizeWindowHint Qt::CustomizeWindowHint 关闭缺省的窗口标题栏 Qt::WindowTitleHint 窗口有标题栏 Qt::WindowSystemMenuHint 有窗口系统菜单 Qt::WindowMinimizeButtonHint 有最小化按钮 Qt::WindowMaximizeButtonHint 有最大化按钮 Qt::WindowMinMaxButtonsHint 有最小化、最大化按钮 Qt::WindowCloseButtonHint 有关闭按钮 Qt::WindowContextHelpButtonHint 有上下文帮助按钮 Qt::WindowStaysOnTopHint 窗口总是处于最上层 Qt::WindowStaysOnBottomHint 窗口总是处于最下层 Qt::WindowTransparentForInput 窗口只作为输出,不接受输入 Qt::Widget、Qt::Window等表示窗体类型的常量可以使窗体具有缺省的外观设置,如果设置为Qt::Dialog类型,则窗体具有对话框的缺省外观,例如标题栏没有最小化、最大化按钮。
控制窗体显示效果和外观的设置项可定制窗体的外观,例如设置一个窗体只有最小化最大化按钮,没有关闭按钮。
3.setWindowState()函数
setWindowState()函数使窗口处于最小化、最大化等状态,其函数原型是:
void QWidget::setWindowState(Qt::WindowStates windowState)
枚举类型Qt::WindowState表示了窗体的状态,其取值见表3。
表3 枚举类型Qt:: WindowState的常量 常量 意义 Qt::WindowNoState 正常状态 Qt::WindowMinimized 窗口最小化 Qt::WindowMaximized 窗口最大化 Qt::WindowFullScreen 窗口填充整个屏幕,而且没有边框 Qt::WindowActive 变为活动的窗口,例如可以接收键盘输入 4.setWindowModality()函数
setWindowModality()函数用于设置窗口的模态,只对窗口类型有用。其函数原型为:
void setWindowModality(Qt::WindowModality windowModality)
枚举类型Qt::WindowModality的取值意义见表4。
表4 枚举类型Qt:: WindowModality的常量 常量 意义 Qt::NonModal 无模态,不会阻止其他窗口的输入 Qt::WindowModal 窗口对于其父窗口、所有的上级父窗口都是模态的 Qt::ApplicationModal 窗口对整个应用程序是模态的,阻止所有窗口的输入 5.setWindowOpacity()函数
setWindowOpacity()函数用于设置窗口的透明度,其函数原型如下:
void QWidget::setWindowOpacity(qreal level)
参数level是1.0(完全不透明)至0.0(完全透明)之间的数。窗口透明度缺省值是1.0,即完全不透明。
-
窗体和对话框
2008-06-09 09:01:26买了本2005编程技巧 还看不太懂和大家分享下 -
C#在关闭窗体时可以设置对话框供用户选择是否关闭
2020-07-08 15:49:03C#在关闭窗体时可以设置对话框供用户选择是否关闭C#在关闭窗体时可以设置对话框供用户选择是否关闭
public Form1() { InitializeComponent(); this.FormClosing += (o, e) => { Stop(); if (e.CloseReason == CloseReason.UserClosing) { e.Cancel = MessageBox.Show("将要退出本程序?", "温馨提醒", MessageBoxButtons.OKCancel, MessageBoxIcon.Exclamation) != DialogResult.OK; CloseDev(); } }; }
-
在窗体退出前弹出对话框C#源代码
2012-04-16 16:41:15在窗体退出前弹出对话框提示是否确认退出,C#源代码,vs2008 -
C#将一个窗体作为另一个窗体的对话框形式弹出
2015-02-28 20:52:38在使用C#做Windows窗体应用的时候,我遇到了一个问题: 我想在一个窗体中弹出一个带有文本框、标签、按钮等常用 控件的对话框,换句话说就是自己定制的“对话框”,我们知 道,在MFC里这样是可以是实现的,但是在C#中... -
ATL窗体与对话框的开发应用
2020-09-26 13:35:49简单窗体 1.创建窗口类,从CWindowImpl类派生;例子如下: (代码:myChild.h) 1.1创建一个窗口类 1.1.1弹出式窗口类(myPopup.h) class CMyPopup : public CWindowImpl<CMyPopup, CWindow, CFrameWinTraits &... -
C#将窗口变成模式对话框
2017-10-13 22:32:27Form4 win4 = new Form4(); win4.ShowDialog(); -
含多种窗体元素的VC++演示对话框
2021-03-15 19:05:54内容索引:VC/C++源码,界面编程,Tab,选项卡 含多种窗体元素的VC++演示对话框,其实也就是些基础的窗体元素,比如复选框、窗体标签(TAB或选项卡)、添加文件、浏览文件等,有兴趣的可参考参考。 -
java:JDialog窗体(对话框,弹出的窗口)
2020-07-15 23:30:54JDialog窗体一、JDialog窗体二、重点内容1.super(超级)2.按钮Btton三、源码四、源码运行效果五、补充说明六、与小恐龙挑战的关系六、定位日期 一、JDialog窗体 JDialog窗体常用功能是从一个窗体中弹出另一个窗体。... -
在C#中非顶级窗体不能显示为模式对话框。在调用 Show 之前应从所有父窗体中移除该窗体。如何处理
2019-08-28 18:14:44!... 主窗口上面是一个容器panel,里面有3个下拉框,左边是一个toolStrip菜单栏,剩余部分是一个panel1(用来... // 添加w1窗体这里显示:非顶级窗体不能显示为模式对话框。在调用 Show 之前应从所有父窗体中移除该窗体。 -
MFC对话框设置窗体颜色或者叫背景色的方法
2019-11-13 00:36:13方法一: 在OnPaint函数的else下添加4行代码: else { CRect rect; CPaintDC dc(this); GetClientRect(rect); dc.FillSolidRect(rect, ...得到的效果:窗体背景上色,任何控件都不上色,包括编辑框。如图: 方法二... -
运用JFrame和JDialog简单创建窗体、对话框
2020-05-27 11:11:07JFrame 说明:在 Swing 组件中,最常见的一个容器就是JFrame...这个时候运行程序是什么都看不见的,那我们就要设置窗体可见: jf.setVisible(true); 这个时候发现窗体是左上角很小很小几乎看不见的一条横杠,那我们要 -
VC++使用位图绘制对话框和窗体
2021-03-15 15:16:53真心不错的窗体绘制技巧,VC++使用BMP位图绘制漂亮的对话框和窗体,先看下测试截图怎么样?漂亮吧?大致说下实现的思路:绘制对话框非客户区域,计算标题栏的高度,获取窗口区域。 第一步绘制对话框的左边框,计算... -
MFC对话框向主窗体传递消息机制
2011-07-17 23:51:36MFC对话框向主窗体传递消息机制,用图+文字描述,很直观,只要照着图上的步骤做就能实现。绝对有用 -
VB弹出子窗体,并控制其变换背景色
2021-05-16 18:55:25内容索引:VB源码,界面编程,子窗体 VB弹出子窗体,并控制其变换背景色,类似于一个控件台与子窗口的对话,在控制台窗体中,可打开一个新的VB子窗体,通过控制台可对子窗体的背景色进行控制,适时变换为红、黄、绿三... -
visual c++开发windows service,服务的功能就是个GUI窗体 vc基于MFC对话框的NT服务程序框架.zip
2021-01-24 12:11:25visual c++开发windows service,服务的功能就是个GUI窗体 vc基于MFC对话框的NT服务程序框架.zip -
透明对话框窗体透明对话框窗体
2010-06-22 23:08:22透明对话框,调节参数,是对话具有透明感,透明对话框,调节参数,是对话具有透明感 -
C#最简单的关闭子窗体更新父窗体的实现方法
2020-12-31 07:04:52主窗体Form1关键代码: 将子窗体最为对话框模式弹出,当窗体关闭或取消时更新主窗体 代码如下: private void simpleButton1_Click(object sender, EventArgs e) { Form2 f2 = new Form2(); f2.Owner = this; ...