winform 界面显示方法
C# WinForm中Show与ShowDialog

C# WinForm中Show与ShowDialogForm.Show创建新窗体后(非模式),立即返回,且没有在当前活动窗体和新窗体间建立任何关系,即在保持新窗口的情况下关闭(或最小化)现有窗体或在保留现有窗体情况下关闭(或最小化)新窗口,都是可以的。
Form.ShowDialog创建模式窗体,即只有当建立的新窗口关闭之后,原有窗体才能重新获得控制权。
即如果不关闭新窗口,将无法对原活动窗口进行任何操作。
对新窗口进行的最小化、还原将会和原窗口一起进行,但是新窗口的关闭对原窗口没有影响。
对于winform来说,大家可能有一个惯性认识或者潜意识,Winform在关闭时(Close()方法被调用时),会自动调用Dispose。
确实,对很多对象,Close()方法会调用Dispose。
然而,对Winform,并不总是成立,只有当Winform以Show的方式,及无模式的方式弹出时,Close才会调用Dispose,也就是说用户在这种情况下关闭对话框,Dispose会马上被调用,资源会马上被释放。
但是对ShowDialog,及模式对话框的情况就不是这样了,你必须显示调用dispose以下两种方式可以用show的方法打开新窗体,并且在关闭的时候不释放(一)protected override void OnClosing(CancelEventArgs e){e.Cancel = true;this.Hide();}(二)protected override void Dispose(bool disposing){//if (disposing && (components != null))//{//components.Dispose();//}//base.Dispose(disposing);Hide();}winForm表单的show( )和showdialog( )的区别分类: 2008-11-12 09:16 374人阅读评论(0) 收藏举报showDialog 是这样说的:将窗体显示为具有指定所有者的模式对话框show 是这样说的:向用户显示具有指定所有者的窗体关键就是模式对话框和窗体的区别了,简单的讲模式对话框弹出来以后,你将不能选中主窗体,除非将模式对话框关闭。
C#Winform打开窗体的几种方法、注意事项的总结

C#Winform打开窗体的几种方法、注意事项的总结C#Winform打开窗体的几种方法、注意事项的解决一、打开MDI子窗体,且允许重复打开FrmMytest frmMytest = new FrmMytest();frmMytest.MdiParent = this;frmMytest.Show();?二、打开MDI子窗体,但不允许重复打开;即如果窗体未打开过,则直接打开,如果打开过,原来的窗体直接显示在最上面int index = HaveOpened(this, "FrmMytest");if (index == -1)?{?FrmMytest frmMytest = new FrmMytest();frmMytest.MdiParent = this;?frmMytest.Show();?}?else?{?this.MdiChildren[index].Show();?}?/// <summary>/// 功能名称:查看MDI子窗体是否已经被打开/// 输入参数:MdiFather,Form,需要判断的父窗体对象/// MdiChild,string,需要判断的子窗体控件名/// 返回结果:-1为没有被打开,正数为子窗体集的数组下标/// </summary>public static int HaveOpened(Form frmMdiFather, string strMdiChild){int bReturn = -1;for (int i = 0; i < frmMdiFather.MdiChildren.Length; i++){if (frmMdiFather.MdiChildren[i].Name == strMdiChild){frmMdiFather.MdiChildren[i].BringT oFront();bReturn = i;break;}}return bReturn;}三、show的方法1、非模式窗体的打开方法new FrmMytest().Show();2、模式窗体的打开方法FrmMytest frmMytest = new FrmMytest();frmMytest.ShowDialog();四、说明1、需求,打开的子窗体不会在windows任务栏中显示,避免用户感觉一个系统有多个运行的问题2、主窗体设置属性IsMdiContainer = true,MDI子窗体IsMdiContainer = false,否则系统编译时会报错。
WinForm实现全屏方法

WinForm实现全屏⽅法1、实现窗体全屏显⽰⽅法:在全屏⽅法中进⾏如下操作this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.WindowState = System.Windows.Forms.FormWindowState.Maximized;2、实现窗体内某控件的全屏显⽰⽅法:例如要将richtextbox控件全屏显⽰,操作如下(this是当前窗体)this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;this.WindowState=FormWindowState.Maximized;Rectangle ret = Screen.GetWorkingArea(this);this.richTextBox2.ClientSize = new Size(ret.Width, ret.Height);this.richTextBox2.Dock = DockStyle.Fill;this.richTextBox2.BringToFront();3、退出全屏,恢复原貌⽅法:前提是先定义⼀个类成员变量,⽤于保存要全屏控件的原始尺⼨(Size),然后在构造函数内将其初始化为控件原始尺⼨在退出全屏⽅法内,操作如下this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;this.WindowState = FormWindowState.Normal;this.richTextBox2.ClientSize = primarySize;//primarySize即是控件的原始尺⼨this.richTextBox2.Dock = DockStyle.None;。
【转】C#在菜单、工具栏、状态栏上显示任意WinForm控件

【转】C#在菜单、⼯具栏、状态栏上显⽰任意WinForm控件在菜单(MenuStrip)、⼯具栏(ToolStrip)、状态栏(StatusStrip)上,已经可以显⽰输⼊框(TextBox)、组合框(ComboBox)等控件,但很多时候,我们想显⽰我们⾃定义的⼀些控件和WinForm⾃带的其他⼀些控件,这个需求我们怎么实现呢?接下来就通过⼀个例⼦来详细的介绍实现这个需求的⽅法。
下⾯,就来介绍怎样⼀步步的实现在菜单(MenuStrip)、⼯具栏(ToolStrip)、状态栏(StatusStrip)上显⽰⼀个前⾯美化的⼀个控件:。
第⼀步:我们先来了解⼀个.Net⾃带的⼀个类:ToolStripControlHost。
它继承⾃ToolStripItem类,我们使⽤菜单的时候,加⼊的项都是叫ToolStrip***Item的,通过这个初步的认识,我们就可以⼤概了解ToolStripControlHost的⽤处了。
看看它的介绍:承载⾃定义控件或 Windows 窗体控件。
呵呵,现在就可以很清楚它的⽤处了吧。
通过它,我们就可以让⾃定义控件和Windows窗体控件显⽰在菜单(MenuStrip)、⼯具栏(ToolStrip)、状态栏(StatusStrip)上了。
第⼆步:来看看ToolStripControlHost的两个构造函数:// 摘要:// 初始化承载指定控件的 System.Windows.Forms.ToolStripControlHost 类的新实例。
//// 参数:// c:// 此 System.Windows.Forms.ToolStripControlHost 类承载的 System.Windows.Forms.Control。
public ToolStripControlHost(Control c);//// 摘要:// 初始化承载指定控件并具有指定名称的 System.Windows.Forms.ToolStripControlHost 类的新实例。
关于C#Winform线程调用窗体的使用方法以及窗体的单一显示

关于C#Winform线程调⽤窗体的使⽤⽅法以及窗体的单⼀显⽰使⽤相关的具备条件:1.前提是必须窗体实例完毕,再触发相关事件开始调⽤2.代码如下:如在窗体加载完毕的⼀个button事件调⽤线程1Thread th1= new Thread(new ThreadStart(process1));th1.Start();//开始调⽤线程private void process1(){while (true){Thread.Sleep(Convert.ToInt32(sleepTime));//设置延迟时间Thread th3 = new Thread(new ThreadStart(process3));//刷新任务th3.Start();}}//具体使⽤BeginInvoke⽅法调⽤窗体private void process3(){MethodInvoker mi = new MethodInvoker(this.ShowMsgForm);this.BeginInvoke(mi);}窗体实例亦可分为两种情况1.直接实例化private void ShowMsgForm(){ArasUpboxNews setNews = new ArasUpboxNews();//实例窗体setNews.Show(this);}2.判断窗体是否存在的实例private void ShowMsgForm(){ArasUpboxNews setNews = ArasUpboxNews.getinstance();if (!setNews .Visible){setNews .Show(this);}}3.在ArasUpboxNews窗体中判定窗体是否显⽰private static ArasUpboxNews _initialize = null;//初始化窗体public static ArasUpboxNews getinstance(){if (_initialize == null){_initialize = new ArasUpboxNews();}return _initialize;}注意:实例之后⼀般要⽤this.Hide();属性在form_closed事件中写⼊_initalize = null;如:private void form_FormClosed(object sender, FormClosedEventArgs e){_initialize = null;}在form_closing事件中写⼊this.Hide();如:private void form_FormClosing(object sender, FormClosingEventArgs e) {this.Hide();}。
C#Winform右下角弹窗方式

private void Form1_Load(object sender, EventArgs e) { Messages msg = new Messages();//将窗口Messages 实例化 Point p = new Point(Screen.PrimaryScreen.WorkingArea.Width - msg.Width, Screen.PrimaryScreen.WorkingArea.Height); msg.PointToClient(p); msg.Location = p; msg.Show(); for (int i = 0; i < msg.Height; i++) { msg.Location = new Point(p.X, p.Y - i); System.Threading.Thread.Sleep(1);//消息框弹出速度,数值越大越慢 } }
第三步:选择事件按钮,双击进入代码界面,具体代码如下:
private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; for (int i = 0; i <= this.Height; i++) { Point p = new Point(this.Location.X, this.Location.Y + i);//弹出框向下移动消失 this.PointToScreen(p);//即时转换成屏幕坐标 this.Location = p;// new Point(this.Location.X, this.Location.Y + 1); System.Threading.Thread.Sleep(10);//下降速度调节,数字越小消失的速度越快,建议不大于10 } this.Close(); this.Dispose(); }
Winform窗口实现多显示屏显示的2种方法

Winform窗⼝实现多显⽰屏显⽰的2种⽅法⼀台主机连接了2台显⽰器(2个显卡),要求⼀个程序的两个窗体在不同的显⽰器上显⽰:显⽰器1 显⽰From1,显⽰器2 显⽰From2。
代码及说明如下:Form1不需要变更代码,From2添加如下代码:// ⽅法⼀:From2 frm2 = new From2();if (Screen.AllScreens.Count() != 1){frm2.Left = Screen.AllScreens[0].Bounds.Width;frm2.Top = 0;frm2.Size = new System.Drawing.Size(Screen.AllScreens[1].Bounds.Width, Screen.AllScreens[1].Bounds.Height);}// ⽅法⼆:this.Left = ((Screen.AllScreens[1].Bounds.Width - this.Width) / 2);this.Top = ((Screen.AllScreens[1].Bounds.Height - this.Height) / 2);this.Size = new System.Drawing.Size(Screen.AllScreens[1].Bounds.Width, Screen.AllScreens[1].Bounds.Height);说明:获取当前系统连接的屏幕数量: Screen.AllScreens.Count();获取当前屏幕的名称:string CurrentScreenName = Screen.FromControl(this).DeviceName;获取当前屏幕对象:Screen CurrentScreen = Screen.FromControl(this);获取当前⿏标所在的屏幕:Screen CurrentScreen = Screen.FromPoint(new Point(Cursor.Position.X, Cursor.Position.Y));。
C__winForm_将窗体状态栏StatusStrip示例(显示当前时间)的方法[1]
![C__winForm_将窗体状态栏StatusStrip示例(显示当前时间)的方法[1]](https://img.taocdn.com/s3/m/ebf9d83283c4bb4cf7ecd15d.png)
C# winForm 将窗体状态栏StatusStrip示例(显示当前时间)的方法2010-06-10 13:33:33 作者:佚名来源:浏览次数:0实现效果:通过StatusStrip显示窗体状态栏,同时将状态栏分成三部分:实现效果:通过StatusStrip显示窗体状态栏,同时将状态栏分成三部分:居左边显示相关文字信息,中间空白显示,居右边显示时间信息。
1.创建窗体及添加StatusStrip默认StatusStrip名称为statusStrip12.在statusStrip1的Items属性中添加三个StatusLabel默认名称为toolStripStatusLabel1,2,3按1,2,3的顺序排列3.修改toolStripStatusLabel1的Text属性为相关文字如"欢迎使用本系统"4.修改toolStripStatusLabel2的Text属性为空Sprint属性为TrueBorderSides属性为Left,Right5.修改toolStripStatusLabel3的Text属性为空在Form的Load事件中修改其显示为当前时间this.toolStripStatusLabel3.Text = "登录时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");6.如果要使状态栏时间信息随操作系统当前时间不停的改变则可以通过增加Timer控件来实现增加Timer控件timer1编写其Tick事件为private void timer1_Tick(object sender, EventArgs e){this.toolStripStatusLabel3.Text = "系统当前时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");}在Form的Load事件中对timer1进行相关设置private void MainForm_Load(object sender, EventArgs e){this.toolStripStatusLabel3.Text = "系统当前时间:" + DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss");this.timer1.Interval=1000;this.timer1.Start();}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
winform 界面显示方法
Winform 界面显示方法
在学习Winform 编程时,界面显示是一个非常重要的部分。
界面的显示质量直接影响到用户对软件的体验和使用感受。
本文将一步一步地介绍Winform 界面显示的方法和技巧。
一、Winform 界面显示基础
Winform 是使用 .NET Framework 进行开发的,它提供了一种简单而强大的方法来创建Windows 应用程序的用户界面。
在Winform 中,界面显示是通过创建一个或多个窗体来完成的。
1. 创建窗体
在Visual Studio 中,可以使用“新建项目”来创建一个Winform 项目。
在项目中,可以通过“添加”菜单来添加新的窗体。
在窗体的设计视图中,可以对窗体进行设计和布局,包括添加控件、设置属性等。
2. 添加控件
Winform 提供了丰富的控件库,包括按钮、标签、文本框、列表框等。
可以通
过从工具箱中拖拽控件到窗体上来添加控件。
添加控件后,可以通过属性窗口来设置控件的属性,如位置、大小、字体、颜色等。
3. 布局控件
在窗体上布局控件是界面显示的重要一环。
可以通过容器控件(如面板、分组框、表格等)来组织和布局其他控件。
使用这些容器控件,可以方便地实现界面的分组和层次化显示。
4. 风格和主题
Winform 提供了丰富的风格和主题设置,可以轻松地改变控件和窗体的外观。
可以通过设置控件的属性,如背景色、字体、边框等,来改变控件的风格。
也可以使用主题库来为整个应用程序添加统一的样式。
二、Winform 界面显示进阶技巧
除了基础的界面显示方法外,还有一些进阶技巧可以提升界面的质量和用户体验。
1. 使用布局管理器
Winform 提供了多种布局管理器,如流布局、表格布局、锚定布局等。
使用布
局管理器可以自动地调整控件的位置和大小,使得界面在不同大小的窗口上都能够正确地显示。
2. 响应式设计
在不同的屏幕分辨率下,界面的显示效果可能存在差异。
为了适应不同的屏幕,可以使用响应式设计技术,使界面能够自动适应不同的屏幕大小。
可以使用百分比布局或者使用控件的Dock 和Anchor 属性来实现响应式设计。
3. 优化性能
界面的显示效果不仅仅是静态的,还包括动态的交互和响应。
为了提升界面的性能,可以对控件进行优化。
例如,可以使用双缓冲绘制来减少闪烁;可以使用异步加载来提升数据的加载速度。
4. 多语言支持
如果软件需要支持多语言,可以使用资源文件和多语言库来实现。
可以将界面的文字和标签提取到资源文件中,并根据用户的语言设置来动态加载对应的资源文件,从而实现多语言界面显示。
三、Winform 界面显示实例演示
下面通过一个简单的实例来演示Winform 界面显示的方法和技巧。
假设我们要创建一个简单的登录窗体,包含用户名和密码输入框以及登录按钮。
我们可以按照以下步骤进行:
1. 创建一个新的Winform 项目,并添加一个窗体。
2. 在窗体上拖拽两个文本框控件和一个按钮控件。
3. 使用布局管理器(如表格布局)来布局控件,使其在窗体上适当的位置。
4. 设置控件的属性,如大小、位置、字体、颜色等。
5. 为按钮控件添加事件处理程序,实现登录逻辑。
6. 运行程序,测试界面的显示和功能。
通过以上步骤,我们可以创建一个简单实用的登录窗体,并实现了基本的界面显示和交互功能。
根据实际需求,可以继续扩展和改进界面。
总结
Winform 界面显示是创建Windows 应用程序的重要一环。
通过掌握基础的界面显示方法和掌握一些进阶技巧,我们可以创建出美观、高效的界面,并提供良好的用户体验。
通过不断实践和学习,我们可以更加熟练地运用Winform 界面显示的方法来开发更加复杂和强大的应用程序。