初识Windows程序

01.创建Windows程序(VS)

01.打开Visual Studio开发工具

02.选择"文件"→"新建"→"项目" 命令.

03.项目类型选择"Visual C#".

.模板选择"Windows窗体应用程序".

05."起名"→"确认".

02.认识Windows程序

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

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

.Form.resx(Form.Designer.cs中):资源文件,用来配置当前窗体所使用的字符串.图片等资源.

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

03.窗体的主要属性和方法

1.常用属性

(1)Name属性:用来获取或设置窗体的名称。
(2)WindowState属性:用来获取或设置窗体的窗口状态。
(3)StartPosition属性:用来获取或设置运行时窗体的起始位置。
(4)Text属性:该属性是一个字符串属性,用来设置或返回在窗口标题栏中显示的文字。   
(5)Width属性:用来获取或设置窗体的宽度。
(6)Heigth属性:用来获取或设置窗体的高度。
(7)Left属性:用来获取或设置窗体的左边缘的 x 坐标(以像素为单位)。
(8)Top属性:用来获取或设置窗体的上边缘的 y 坐标(以像素为单位)。
(9)ControlBox属性:用来获取或设置一个值,该值指示在该窗体的标题栏中是否显示控制框。
(10)MaximumBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最大化按钮。
(11)MinimizeBox属性:用来获取或设置一个值,该值指示是否在窗体的标题栏中显示最小化按钮。
(12)AcceptButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按 ENTER 键时就相当于单击了窗体上的该按钮。
(13)CancelButton属性:该属性用来获取或设置一个值,该值是一个按钮的名称,当用户按ESC键时就相当于单击了窗体上的该按钮。
(14)Modal属性:该属性用来设置窗体是否为有模式显示窗体。
(15)ActiveControl属性:用来获取或设置容器控件中的活动控件。
(16)ActiveMdiChild属性:用来获取多文档界面(MDI)的当前活动子窗口。
(17)AutoScroll属性:用来获取或设置一个值,该值指示窗体是否实现自动滚动。
(18)BackColor属性:用来获取或设置窗体的背景色。
(19)BackgroundImage属性:用来获取或设置窗体的背景图像。
(20)Enabled属性:用来获取或设置一个值,该值指示控件是否可以对用户交互作出响应。
(21)Font属性:用来获取或设置控件显示的文本的字体。
(22)ForeColor属性:用来获取或设置控件的前景色。
(23)IsMdiChild属性:获取一个值,该值指示该窗体是否为多文档界面 (MDI) 子窗体。
 
(24)IsMdiContainer属性:获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 中的子窗体的容器。
(25)KeyPreview属性:该属性用来获取或设置一个值,该值指示在将按键事件传递到具有焦点的控件前,窗体是否将接收该事件。
(26)MdiChildren属性:数组属性。
(27)MdiParent属性:该属性用来获取或设置此窗体的当前多文档界面 (MDI) 父窗体。
(28)ShowInTaskbar属性:该属性用来获取或设置一个值,该值指示是否在 Windows 任务栏中显示窗体。
(29)Visible属性:该属性获取或设置一个值,该值指示是否显示该窗体或控件。
(30)Capture属性:如果该属性值为true,则鼠标就会被限定只由此控件响应,不管鼠标是否在此控件的范围内。   

2.常用方法

(1)Show()方法
该方法的作用是让窗体显示出来,其调用格式为:
窗体名.Show();
(2)Hide方法
该方法的作用是把窗体隐藏出来,其调用格式为:
窗体名.Hide();
(3)Refresh方法
该方法的作用是刷新并重画窗体,其调用格式为:
窗体名.Refresh();
 
(4)Activate方法
该方法的作用是激活窗体并给予它焦点。其调用格式为:
窗体名.Activate();
(5)Close方法
该方法的作用是关闭窗体。其调用格式为:
窗体名.Close();
(6)ShowDialog方法
该方法的作用是将窗体显示为模式对话框。其调用格式为:
窗体名.ShowDialog();  
 

04.关于窗体项目的注意点:

.一个解决方案下可以包含多个项目,

一个项目下可以包含多个窗体

.如何设置一个项目下的某个窗体为启动窗体???

解析:通过更改Program.csMain方法中最后一行代码设置

.控件的Name属性相当于隐藏值,一定要改

真正在窗体显示内容的是Text属性

.如果一个解决方案下有多个项目,如何设置某个项目为启动项??

解析:可以对项目点击右键→设为启动项

05.机房的项目如何保存,或者保存后如何打开???

解析:可以将解决方案另存为到指定的项目下,下次

直接打开sln文件就可以了

06.事件激发错误问题???

(这个正常,现在大家都事件的概念还不太理解,

随着学习的深入大家就会了解)

解析:注意什么时候激发事件

07.如何让窗体运行后无法改变大小?

解析:通过如下设置:

(01).禁用最大化按钮

(02).设置FormBorderStyle属性为任何一个以Fixed开头的属性都OK

05.MessageBox消息框

参数一:提示信息

参数二:标题文本

参数三:按钮设置

参数四:图标设置

eg: MessageBox.Show("确定退出?","温馨提示",MessageBoxButtons.YesNo,MessageBoxIcon.Warning);

分析:

01.按钮设置中:

成员名称                                    说明

AbortRetryIgnore                      消息框包含“中止”、“重试”和“忽略”按钮。

OK                                           消息框包含“确定”按钮。

OKCancel                                  消息框包含“确定”和“取消”按钮。

RetryCancel                               消息框包含“重试”和“取消”按钮。

YesNo                                       消息框包含“是”和“否”按钮。

YesNoCancel                              消息框包含“是”、“否”和“取消”按钮。

02.图标设置中

成员名称                                    说明

None                                                     消息框中不显示小图标

Warning /Exclamation                                   消息框中显示

Asterisk /Information                                    消息框中显示

Error /Hand/Stop                                          消息框中显示

Question                                                     消息框中显示

06.窗体的基本控件

1.Label
标签控件:显示用户不能编辑的文本,用户无法编辑。基本用法:
label.Text=””显示文本;
label.Visible=true/false是否隐藏控件。

2.Button
控件:允许用户通过单击来执行某种操作。
基本用法:
 1)button.Text=””在按钮上显示文本;
单击Button控件引发Click 事件,
private void button_Click(object sender,EventArags e)。
 
2)窗体的AcceptButton属性设置了用户每次按下Enter键都会 触发的按钮控件,
this.AcceptButton=button。
 
3)窗体的CancelButton属性设置了用户每次按下Esc键都会触 发的按钮控件,
this.CancelButton=button。
 
4)OnMouseEnter和OnMouseLeave事件实现鼠标指针移入移 出按钮控件时触发的事件。
 
3.TextBox
文本框控件:获取用户输入的数据或者显示文本,用户可
以进行编辑,也可以设置成只读控件。基本用法:
1)textBox.ReadOnly=true/false设置控件是否为只读。
 
2)textBox.Text.Trim()方法可以将当前文本框中的字符串的前面 和末尾的空白字符全部移除。
 
3)textBox.Focus()
方法使光标焦点处于文本框中。
 
4)textBox.PasswordChar=’’设置输入密码时文本框中显示的是 设置好的字符,
textBox.UseSystemPasswordChar=true/false 设置输入密码时文本框中显示的是系统默认的字符’*’。
 
5)textBox.BorderStyle属性设置文本框的边框类型。
 
6) textBox.Multiline=true/false设置文本框控件可以输入多行数据。
 
7)textBox.Width=和textBox.Height=属性设置文本框的宽和高。
 
8)textBox.SelectionStart=Index属性和textBox.SelectionLength= 属性设置选择文本框中字符串的起始位置索引和要选择的长度。
 
9)TextChanged事件设置当文本框中的文本发生更改时引发的事件,private  void  textbox_TextChanged(object gender,EventArgs e)

4.ComboBox

07.窗体传值(重点)

思路:从Login窗体传递登陆用户名到Main窗体,可以在Main窗体中定义一个公有的变量,然后在Login窗体的登陆按钮事件中编写如下代码:

Main frm=new Main();

frm.name=txtName.Text;

frm.Show();

然后在Main的load事件中为Label控件赋值。

解析:1.在接受值的窗体中定义个变量.

2.在显示Main窗体之前(Show之前)把值赋予name,

3.如上图1中在Load中显示.

08.一些例题

01.制作计算器

主要核心代码(在计算按钮下):

 private void button_jisuan_Click(object sender, EventArgs e)
{
if (textBox_one.Text!=""&& textBox_three.Text!="")
{
double num1 = Convert.ToDouble(textBox_one.Text);
double num2 = Convert.ToDouble(textBox_three.Text);
String num = comboBox_two.Text;
double result;
switch (num)
{ case "+":
result = num1 + num2;
textBox_jieguo.Text = result.ToString();
break;
// MessageBox.Show(result.ToString());
case "-":
result = num1 - num2;
textBox_jieguo.Text = result.ToString();
break;
case "*":
result = num1 * num2;
textBox_jieguo.Text = result.ToString();
break;
case "/":
result = num1 / num2;
textBox_jieguo.Text = result.ToString();
break;
default:
break; }
}
if (textBox_one.Text=="")
{
MessageBox.Show("请输入第一个数","提示");
}
if (textBox_three.Text == "")
{
MessageBox.Show("请输入第二个数","提示"); }
if (comboBox_two.Text=="")
{
MessageBox.Show("请选择运算符","提示"); } }

2."日期"组合框中的月份改变后日会随之改变:如1-31,2-29,4-30
                

主要核心代码:

01.在Load中

 private void data_Load(object sender, EventArgs e)
{
for (int i = 1; i <=12; i++)
{
comboBox_yue.Items.Add(i);
} }

02.在月的SelectedexChanged事件中:

private void comboBox_yue_SelectedIndexChanged(object sender, EventArgs e)
{
string result = comboBox_yue.Text;
comboBox_ri.Items.Clear();
switch (result)
{
case "":
case "":
case "":
case "":
case "":
case "":
case "":
for (int i = ; i <= ; i++)
{
comboBox_ri.Items.Add(i);
} break;
case "":
case "":
case "":
case "":
for (int i = ; i <= ; i++)
{
comboBox_ri.Items.Add(i);
}
break;
case "":
for (int i = ; i <= ; i++)
{
comboBox_ri.Items.Add(i);
}
break; default:
break;
}
}

3.猜数游戏(有提示.且在开始之前 "猜一猜"不能用,点了"新游戏"后才能用)
         

  

核心代码:

 public partial class Guess : Form
{
public Guess()
{
InitializeComponent();
}
public int num = ;//定义为接收随机数
public int count = ;
//在"新游戏"的Click事件中
private void button_new_Click(object sender, EventArgs e)
{
textBox_num.Clear();//清除上次显示记录
button_guess.Enabled = true;//使"猜一猜"按钮可用了
Random r = new Random();//为产生随机数
num=r.Next(,); //产生1-5之间的随机整数(包括1,不包括5)
} //在"猜一猜"按钮的Click事件中
private void button_guess_Click(object sender, EventArgs e)
{
count++;
int num1 = ;
if (textBox_num.Text == ""){
MessageBox.Show("请输入要猜的数", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (textBox_num.Text != "")
{
num1 = Convert.ToInt32(textBox_num.Text); if (num > num1)
{ MessageBox.Show("小了,再猜!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
else if (num < num1)
{
MessageBox.Show("大了,再猜!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); }
else
{ MessageBox.Show("恭喜你,猜中了!!一共猜了" + count + "次", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
}
}

窗体==>>初始Windows程序的更多相关文章

  1. 初始Windows程序

    1.属性 窗体标题 Name  窗体的图标 Icon  背景图片 BackgroundImage 背景颜色 BackColor  最大化按钮 MaxIMonBox  最小化按钮 Minimun 窗体边 ...

  2. 初识Windows程序

    首先,我们创建第一个Windows程序,一共分为4个步骤: 1.打开Visual Studio开发工具 2.选择"文件"→"新建"→"项目" ...

  3. Windows程序内部运行机制 转自http://www.cnblogs.com/zhili/p/WinMain.html

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

  4. Visual Studio 创建C++或C#Windows程序

    使用工具Visual Studio,创建一个C++或C#Windows程序,在主窗口中显示“Hello World”,用户可以用鼠标拖动“Hello World”在主窗口中移动 首先创建一个项目​ 选 ...

  5. 深入浅出话VC++(1)——Windows程序内部运行机制

    一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序 ...

  6. 通过weburl 启动windows程序

    1. 注册表修改 建立一个reg文件 执行导入  以RunLocal协议为例子 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\RunL ...

  7. Windows程序----初识Windows程序

    先来看一些励志名言来激励一下自己吧!  励志名言:每一发奋发奋的背后,必有加倍的赏赐 1.有无目标是成功者与平庸者的根本差别. 2.成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成. 3.当 ...

  8. windows程序消息机制(Winform界面更新有关)

    windows程序消息机制(Winform界面更新有关) 转自:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html 1. Win ...

  9. 第三章—Windows程序

    这一章我都不知道该如何写了,呵呵~~ 毕竟,Win32是一个非常深奥的系统,目前还容不得我这种 小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以 ...

随机推荐

  1. Emit动态生成代码

    Emit动态生成代码 引用:秒懂C#通过Emit动态生成代码 首先需要声明一个程序集名称, // specify a new assembly name var assemblyName = new ...

  2. 记一次VNC远程连接Linux问题解决记录(5900端口测试、KDE桌面安装)

    最近几天,到一个项目上安装Linux部署环境.由于服务器在机房,而进机房又比较麻烦,于是选择VNC远程连接Linux就显得自然而然了.以前也用过VNC,而且还经常使用,由于各个项目环境不太一样,这次也 ...

  3. c#如何读取相机手机的拍摄时间

    /// 获中的照片拍摄日期 /// </summary> /// <param name="fileName">文件名</param> /// ...

  4. 开发者app 上传收集

    直接使用酷传  看各个市场目录 http://publish.coolchuan.com/myaccount/accounts 注册帐号 百度开发者 http://jingyan.baidu.com/ ...

  5. Codeforces Round #195 A B C 三题合集 (Div. 2)

    A 题 Vasily the Bear and Triangle 题目大意 一个等腰直角三角形 ABC,角 ACB 是直角,AC=BC,点 C 在原点,让确定 A 和 B 的坐标,使得三角形包含一个矩 ...

  6. 消息中间件Notify和MetaQ-阿里中间件

    3.1.Notify Notify是淘宝自主研发的一套消息服务引擎,是支撑双11最为核心的系统之一,在淘宝和支付宝的核心交易场景中都有大量使用.消息系统的核心作用就是三点:解耦,异步和并行.下面让我以 ...

  7. VPN理论简单介绍(转载)

    标签:VPN理论简单介绍 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://lvnian.blog.51cto.com/715528 ...

  8. redmin3 忘记管理密码找回方法

    在网上找了一下都是redmine2的,而且比较复杂. 后来我看了一下redmin的数据库,如下: 注册一个新用户把admin的值改为1即可,就是管理员了. 如果忘记数据库密码,可以参考此文档修改数据库 ...

  9. 重识JavaScript 之 JavaScript的组成

    JavaScript由ECMAScript.DOM.BOM组成. 简单认识: ECMAScript:首先它不是一门编程语言,而是一个标准,规定这些浏览器的脚步语言必须按照它的规定去做. DOM     ...

  10. WCF小白初试 错误之一:“有零个应用程序终结点”的解决办法

    遇到这类问题 应该是配置文件出现了问题 解决办法是将配置文件中的<service name="命名空间+类名">就可以解决