新认知之WinForm窗体程序
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窗体程序的更多相关文章
- 使用控制台调试WinForm窗体程序
.程序代码结构 .Win32DebuggerHelper.cs using System.Runtime.InteropServices; /* TODO:使用方法 Win32.AllocConsol ...
- 【转载】Visual Studio中WinForm窗体程序如何切换.NET Framework版本
在C#语言的WinForm窗体程序中,有时候我们需要切换WinForm窗体程序项目的.NET Framework版本号,例如从.NET Framework 4.5版本切换到.NET Framework ...
- 【转载】Visual Studio2017如何打包发布Winform窗体程序
在用C#语言编写好Winform窗体程序后,最后一步的操作是将设计好的Winform程序代码进行打包以及发布成安装包.在Visual Studio2017开发工具中,打包发布WinForm程序是比较简 ...
- winform窗体程序运行后怎样隐藏?
运行winform窗体,我们是怎样隐藏的呢? 例子: 1)创建简单winform窗体 2)编写隐藏窗体程序的代码 3)效果演示 1)创建一个简单的winform窗体MainForm,
- WinForm窗体项目 之 MySchool管理系统终极版
学习WinForm窗体程序也有一段时间了,今天就来尝试着来一个项目热热身~ 在我们通常使用的MySchool管理中,不外乎这几种功能:增.删.改.查.改密码 在过去的C#中确实是挺简单的,但是在学习了 ...
- WinForm窗体下Excel的导入
一.Winform窗体程序的Excel的导入 把Excel导入到内存中的DataTable 方法实现: #region ExcelToDataTable public static DataTable ...
- winform窗体继承泛型类时,设计器无法使用解决办法
当我们使用winform程序时,winform窗体程序和控件程序都是可以通过设计器进行控件拖拽的,但如果我们继承了一个带有泛型的form基类.那么设计器是无法使用的. 目前我没有找到根本解决的办法,但 ...
- 解决Winform应用程序中窗体背景闪烁的问题
本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问 ...
- [工作札记]03: 微软Winform窗体中ListView、DataGridView等控件的Bug,会导致程序编译失败,影响范围:到最新的.net4.7.2都有
工作中,我们发现了微软.net WinForm的一个Bug,会导致窗体设计器自动生成的代码失效,这个Bug从.net4.5到最新的.net4.7.2都存在,一直没有解决.最初是我在教学工作中发现的,后 ...
随机推荐
- 如何通过js在子页面调用父页面元素的click事件
//获取父页面的某个元素var node = window.parent.document.getElementById("btnReturn");//调用该元素的Click事件 ...
- session 分布式处理-----https://segmentfault.com/a/1190000013447750?utm_source=tag-newest
第一种:粘性session 粘性Session是指将用户锁定到某一个服务器上,比如上面说的例子,用户第一次请求时,负载均衡器将用户的请求转发到了A服务器上,如果负载均衡器设置了粘性Session的话, ...
- BNUOJ 33895 D-City
D-City Time Limit: 1000ms Memory Limit: 65535KB This problem will be judged on HDU. Original ID: 449 ...
- [luoguP1069] 细胞分裂(数论)
传送门 分解质因数,不说了 这题坑了我2个多小时 教训 不熟悉位运算的优先级一定要加括号!!!! #include <cstdio> #include <iostream> # ...
- hdu 1874 dijkstra 队列实现 比数组高效特别在稀疏图
参考 http://blog.csdn.net/zhuyingqingfen/article/details/6370561 刘汝佳白皮书 #include<stdio.h> #incl ...
- Mysql 练习题 及 答案
--1.学生表 Student(S,Sname,Sage,Ssex) --S 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(C,Cname,T ...
- C. Star sky 二维前缀和
time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standa ...
- Ubuntu下使用Sysvinit实现自定义服务(简单研究)
通过上一篇文章http://www.cnblogs.com/EasonJim/p/7168216.html可以大概了解到Sysvinit的历史. 其实在自定义服务上,使用Sysvinit是最简单的,本 ...
- Ubuntu18.04卸载lnmp
1.卸载 apache2 sudo apt-get --purge remove apache2* sudo apt-get autoremove apache2 (--purge 是完全删除并且不保 ...
- angularjs 过滤多组数据
<html> <head> <script src="angular.min.js"></script> <script ty ...