窗体是winform开发的基础,需要掌握窗体的创建、属性、调用和窗体传值等等。

1、在项目中添加窗体很简单,在项目上点击右键,选择添加windows窗体即可为项目添加新的窗体。

2、窗体的属性设置,右键点击窗体,选择属性,VS右侧即可看到窗体的属性,winform所有控件的属性设置皆可以通过此种方式进行设置。

(1)更改窗体的图标:在窗体的属性中有Icon这个属性,单击选择我们要设置的图片即可。图片必须是ico文件。可以到EasyICON这个网站上找找,有很多很好的图标。

(2)隐藏窗体的标题栏:把窗体的属性FormBorderStyle设为None即可。

  FormBorderStyle的属性值:

  Fixed3D:固定的三维边框

  FixedDialog:固定的对话框样式的粗边框

  FixedSingle:固定的单行边框

  FixedToolWindow:不可调整大小的工具窗口边框

  None:无边框

  Sizable:可调整大小的边框

  SizableToolWindow:可调整大小的工具窗口边框

(3)控制窗口的显示位置:StartPosition属性来实现

  CenterParent:窗体在其父窗体中居中

  CenterScreen:窗体在当前显示窗口中居中,其尺寸在窗体大小中指定

  Manual:窗体的位置由Location属性确定

  WindowsDefaultBounds:窗体定位在Windows默认位置,边界由Windows默认决定

  WindowsDefaultLocation:窗体定位在Windows默认位置,其尺寸在窗体大小中指定

(4)修改窗体大小:双击Size属性,有Width和Height两个属性,分别设置即可。

(5)设置窗体背景图片:通过BackgroundImage属性实现

  打击打开有两种选择:

  选择本地资源,保存的是图片的路径

  选择项目资源文件,将选择的文件保存到项目资源文件Resource.resx中,开发中最好导入到资源文件中,这样软件在打包的时候也可以打包进去。

(6)窗体的显示和隐藏:

  显示:Form form = new Form(); form.Show();

  隐藏:Form form = new Form(); form.Hide();

  首先,Show()和Hide()是非静态方法,所以我们需要创建窗体对象进行调用。

  其次,使用Hide(),窗体所占用的资源并没有从内存中释放掉,而是继续存储在内存中,所以我们可以随时再调用Show()方法进行显示隐藏的窗体。

  如果我们要关闭当前窗体form.Close()时也关闭所有的隐藏窗体,则:Application.exit();

(7)触发窗体事件:单击属性栏里的闪电图标就能看到窗体所有的事件。双击Click即可创建了窗体的Click事件。

private void Form_Click(object sender,EventArgs e){}

(8)窗体加载事件(Load),创建过程同,一般情况下我们会使用此方法,在窗体load时加载一些需要的初始信息。

  private void Form_Load(object sender,EventArgs e){}

(9)窗体关闭事件(FormClosing)

  FormClosing事件

  在窗体关闭时,FormClosing事件发生。此事件会得到处理。从而释放与窗体相关的所有资源。

  如果取消此事件,则窗体仍然保持打开状态。

  当窗体显示为模式对话框时,单击“关闭”会隐藏窗体并将DialogResult属性设为Cancel。通过在些事件中设置DialogResult属性可以在用户单击右上角关闭按钮时重写  DialogResult的值。

  FormClosed事件

  在用户或Application类的Close方法或Exit方法关闭窗体后,会发生FormClosed事件。

  可以使用此事件释放窗体的一些资源。还可以使用此事件保存输入窗体中的一些信息或者更新父窗体。

(10)窗体弹出框

  首先,MessageBox.Show()是弹出框的,类似js的alert

  其次,这个是使用if语句判断是否单击了"是"按钮:

  if(MessageBox("是否查看窗体!","","MessageBoxButton.YesNo,MessageBoxIcon.Information")==DialogResult.OK){}

  也可以这样:

  DialogResult dr=MessageBox("是否查看窗体!","","MessageBoxButton.YesNo,MessageBoxIcon.Warning");

  dr==DialogResult.YES.......

winform 之1---窗体介绍的更多相关文章

  1. C#WinForm无边框窗体移动方法、模仿鼠标单击标题栏移动窗体位置

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

  2. WinForm无边框窗体移动方法

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

  3. C#WinForm无边框窗体移动----模仿鼠标单击标题栏移动窗体位置

    C#WinForm无边框窗体移动方法.模仿鼠标单击标题栏移动窗体位置 这里介绍俩种办法 方法一:直接通过修改窗体位置从而达到移动窗体的效果 方法二:直接伪装发送单击任务栏消息,让应用程序误以为单击任务 ...

  4. winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体

    winform打开子窗体后,在子窗体中刷新父窗体,或者关闭子窗体刷新父窗体,搜集了几个方法,列举如下: 一 . 所有权法 父窗体,名称为“fuForm”,在父窗体中有个公共刷新方法,也就是窗体数据初始 ...

  5. WinForm中一个窗体调用另一个窗体

    [转] WinForm中一个窗体调用另一个窗体的控件和事件的方法(附带源码) //如果想打开一个 Form2 的窗体类,只需要: Form2 form = new Form2(); //有没有参数得看 ...

  6. C#自定义按钮、自定义WinForm无边框窗体、自定义MessageBox窗体

    C#自定义按钮.自定义WinForm无边框窗体.自定义MessageBox窗体 C#自定义Button按钮控件 效果展示 C#自定义Winform无边框窗体 效果展示 C#自定义无边框MessageB ...

  7. C#自定义Winform无边框窗体

    C#自定义Winform无边框窗体 在实际项目中,WinForm窗体或者控件不能满足要求,所以就需要自己设计窗体等,当然设计界面可以用的东西很多,例如WPF.或者一些第三方的库等.本例中将采用WinF ...

  8. C# WinForm开发 取消窗体关闭按钮

    //禁用窗体的关闭按钮 private const int CP_NOCLOSE_BUTTON = 0x200; protected override CreateParams CreateParam ...

  9. GUI JFrame窗体介绍:

    GUI JFrame窗体介绍: https://www.cnblogs.com/-ksz/p/3422074.html

  10. 关于WinForm引用WPF窗体---在Winform窗体中使用WPF控件

    项目中有个界面展示用WPF实现起来比较简单,并且能提供更酷炫的效果,但是在WinForm中使用WPF窗体出现了问题,在网上找了一下有些人说Winform不能引用WPF的窗体,我就很纳闷,Win32都能 ...

随机推荐

  1. OC学习那些事:点语法

    1.使用自定义的方法创建get/set方法 Person.h文件: #import <Foundation/Foundation.h> @interface Person : NSObje ...

  2. Oracle 集群心跳及其參数misscount/disktimeout/reboottime

    在Oracle RAC中,能够从多个层次,多个不同的机制来检測RAC的健康状况,即能够通过心跳机制以及一定的投票算法来隔离故障.假设检測到某节点失败,则存在故障的节点将会被逐出集群以避免故障节点破坏数 ...

  3. .net EF中从数据添加表或视图时无法添加的问题

    .net 使用EF模式进行开发,添加实体时不能够正常添加 错误描述: .net中在EF文件中添加数据库中已有的表或视图时不能正常添加,在添加时没有任何的错误提示,但是表或视图就一直拉不过来,,保存也没 ...

  4. 【原创】MapGIS K9 三维二次开发入门

    开发语言:C# 平台版本:MapGIS K9 SP3 MapGIS K9三维平台也提供了接口和组件以实现二次开发.用户可以根据提供的接口和组件进行二次开发,也可以借助MapGISK9数据中心框架,可以 ...

  5. werkzeug中reloader的实现

    在用flask开发时,如果把use_reloader设为True(debug设为True也能实现),那当你修改了app代码或调用环境发生改变时,服务器会自动重启,如下 * Detected chang ...

  6. GNU scientific library

    GNU scientific library 是一个强大的C,C++数学库.它涉及的面很广,并且代码效率高,接口丰富.正好最近做的一个项目中用到多元高斯分布,就找到了这个库. GNU scientif ...

  7. (Problem 22)Names scores

    Using names.txt (right click and 'Save Link/Target As...'), a 46K text file containing over five-tho ...

  8. js 选择器

    a>b  获取a下面的直接子元素

  9. Uva 1103 Ancient Messages

    大致思路是DFS: 1. 每个图案所包含的白色连通块数量不一: Ankh : 1 ;  Wedjat : 3  ; Djed : 5   ;   Scarab : 4 ; Was : 0  ;  Ak ...

  10. Failed to load the JNI shared library

    解决Eclipse无法打开"Failed to load the JNI shared library" 这是由于JDK配置错误所导致的现象. 一般说来,新购笔记本会预装64位的w ...