Windows应用程序和控制台应用程序有很大的区别

》Form1.cs  :窗体文件,程序员对窗体编写的代码一般都存放在这个文件中。

》Form1.Designer.cs :窗体设计文件,其中的代码是有Visual Studio自动生成的,一般不需要修改。

》Form1.resx  :资源文件,用来配置当前窗体所使用的字符串,图片等资源。

》Program.cs  :主程序文件,其中包含程序入口的Main()方法

Partial  》     在窗体类的前面多了一个partial  。     partial是“部分的”意思,在C#中,为了方便对代码的管理和编辑,

可以使用partial关键字将同一个类的代码分开放在多个文件中。每个文件都是类的一部分代码,叫做分布类。代码编译时,

编译器再将各个分布类的代码合、合并到一起出处理。

Form是 .NetframWork定义好的一个最基本的窗体类,具有窗体的一些最基本的属性和方法,冒号表示继承,我们创建的窗体都继承自Form类,

那么他就具有了Form类,那么它就具有了Form类中的属性和方法,接下来就来简单了解下窗体的主要属性和方法吧

窗体的主要属性
Name 窗体对象的名称,用以在代码中进行标识
BackColor 窗体的背景色
BackgroundImage 窗体的背景图像
FormBorderStyle 窗体显示的边框样式,有7个可选的值,默认为SizaBle
MaximizeBox 确定标题栏的右上角是否有最大框值,默认为true
ShowInTaskbar 确定窗体是否出现在Windows任务栏中,默认为true 
StartPosition 确定窗体第一次出现的位置
Text 窗体标题栏中显示的文本
TopMost 指示窗体是否始终显示在此属性未设置为true的所有窗体之上,默认为false
WindowState 确定窗体的初始可视状态,包括Normal(普通)、Maximized(最大化)、Minimized(最小化),默认为Normal
   
窗体的主要方法
Close() 关闭窗体

Show()

显示窗体
ShowDialog() 模式化显示窗体
Hide() 隐藏窗体

FormBorderStyle用于设置窗体的边框样式,如果不希望窗体运行后,用户通过鼠标拖拽改变窗体大小,在设计的时

要将窗体的FormBorderStyle属性值设置为FixedSingle

》》》基本控件

》》标签:用于显示用户不能编辑的文本或图像

》Image  在窗体上显示的图像

》Text  在窗体上显示的文本

》》文本框:用于获取用户输入的信息或向用户显示的文本

》MaxLength  指示可以在文本框中输入的最大字符数

》MultiLine  表示是否可以在文本框中输入多行文本

》PasswordChar  指示在作为密码框时,文本框中显示的字符,而不是实际输入的文本

》ReadOnly  指示是否允许编辑文本框中的文本

》Text  与文本框关联的文本

》》组合框:它结合了文本框和列表框的特点,允许用户在组合框中输入文本,或在列表中进行选择

》Items  组合框中的项

》DropDownStyle  定义组合框的风格,指示是否显示列表框部分,是否允许用户编辑文本框部分

》Text  与组合框关联的文本

》SelectedIndex  当前选定项目的索引号,列表框中的每个项都有一个索引号,从0开始

》SelectedItem  获取当前选定的项

》》_____组合框中的事件:

》Click  单机控件时发生

》SelectedIndexChanged  在SelectedIndex属性修改后发生

》》按钮:允许用户通过单机来执行操作

》Enable  布尔值,表示控件是否可用,True表示为可用,False表示不可用,如果控件不可用,运行后显示为灰色

》Text  按钮上显示的文本

》TextAlign  按钮上文本的对齐方式

》》_____按钮中的事件

》Click  单机控件时发生

小知识:控件命名时要遵循一定的规范,比较通用的规范:控件类名的缩写+有含义的英文单词。

eg:Button控件的缩写是btn,那么“登录”按钮就可以命名为btnLogin

控件的通用属性:Text、Name、Enable等,这些属性在不同的控件中表示的含义是一样的。

》》》MessageBox消息框

  在WinForm中,消息框是一个MessageBox对象。那么,如何创建消息框呢?这就需要使用MessageBox的Show()方法。

  Eg:

    //带标题、按钮、图标的消息框

    MessageBox.Show(要显示的字符串,消息框的标题,消息框按钮,消息框图标)

小知识:判断空字符串时,string.Empty与null的区别是什么?

解答:string.Empty表示空字符串,即字符串对象中不包含任何字符,而null表示空引用,即不引用任何对象。

》》》窗体间的数据传递

》》在Test类中定义一个公有的变量Name  

public string Name;

》》在登陆的窗体中为Name赋值(为Name赋值后,在任意一个类中皆可调用)

Test.Name = txtName.text;

》》在修改密码窗体中进行引用Name的值

newName.text = Test.Name;

更多精彩,敬请期待~

新认知之WinForm窗体程序的更多相关文章

  1. 使用控制台调试WinForm窗体程序

    .程序代码结构 .Win32DebuggerHelper.cs using System.Runtime.InteropServices; /* TODO:使用方法 Win32.AllocConsol ...

  2. 【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本

    在C#语言的WinForm窗体程序中,有时候我们需要切换WinForm窗体程序项目的.NET Framework版本号,例如从.NET Framework 4.5版本切换到.NET Framework ...

  3. 【转载】Visual Studio2017如何打包发布Winform窗体程序

    在用C#语言编写好Winform窗体程序后,最后一步的操作是将设计好的Winform程序代码进行打包以及发布成安装包.在Visual Studio2017开发工具中,打包发布WinForm程序是比较简 ...

  4. winform窗体程序运行后怎样隐藏?

    运行winform窗体,我们是怎样隐藏的呢? 例子: 1)创建简单winform窗体 2)编写隐藏窗体程序的代码 3)效果演示 1)创建一个简单的winform窗体MainForm,

  5. WinForm窗体项目 之 MySchool管理系统终极版

    学习WinForm窗体程序也有一段时间了,今天就来尝试着来一个项目热热身~ 在我们通常使用的MySchool管理中,不外乎这几种功能:增.删.改.查.改密码 在过去的C#中确实是挺简单的,但是在学习了 ...

  6. WinForm窗体下Excel的导入

    一.Winform窗体程序的Excel的导入 把Excel导入到内存中的DataTable 方法实现: #region ExcelToDataTable public static DataTable ...

  7. winform窗体继承泛型类时,设计器无法使用解决办法

    当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的. 目前我没有找到根本解决的办法,但 ...

  8. 解决Winform应用程序中窗体背景闪烁的问题

    本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问 ...

  9. [工作札记]03: 微软Winform窗体中ListView、DataGridView等控件的Bug,会导致程序编译失败,影响范围:到最新的.net4.7.2都有

    工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决.最初是我在教学工作中发现的,后 ...

随机推荐

  1. 如何通过js在子页面调用父页面元素的click事件

    //获取父页面的某个元素var node = window.parent.document.getElementById("btnReturn");//调用该元素的Click事件 ...

  2. session 分布式处理-----https://segmentfault.com/a/1190000013447750?utm_source=tag-newest

    第一种:粘性session 粘性Session是指将用户锁定到某一个服务器上,比如上面说的例子,用户第一次请求时,负载均衡器将用户的请求转发到了A服务器上,如果负载均衡器设置了粘性Session的话, ...

  3. BNUOJ 33895 D-City

    D-City Time Limit: 1000ms Memory Limit: 65535KB This problem will be judged on HDU. Original ID: 449 ...

  4. [luoguP1069] 细胞分裂(数论)

    传送门 分解质因数,不说了 这题坑了我2个多小时 教训 不熟悉位运算的优先级一定要加括号!!!! #include <cstdio> #include <iostream> # ...

  5. hdu 1874 dijkstra 队列实现 比数组高效特别在稀疏图

    参考  http://blog.csdn.net/zhuyingqingfen/article/details/6370561 刘汝佳白皮书 #include<stdio.h> #incl ...

  6. Mysql 练习题 及 答案

    --1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表  Course(C,Cname,T ...

  7. C. Star sky 二维前缀和

    time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...

  8. Ubuntu下使用Sysvinit实现自定义服务(简单研究)

    通过上一篇文章http://www.cnblogs.com/EasonJim/p/7168216.html可以大概了解到Sysvinit的历史. 其实在自定义服务上,使用Sysvinit是最简单的,本 ...

  9. Ubuntu18.04卸载lnmp

    1.卸载 apache2 sudo apt-get --purge remove apache2* sudo apt-get autoremove apache2 (--purge 是完全删除并且不保 ...

  10. angularjs 过滤多组数据

    <html> <head> <script src="angular.min.js"></script> <script ty ...