初识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. 基于LoadRunner构建接口测试框架

    基于LoadRunner构建接口测试框架 http://www.docin.com/p-775544153.html

  2. Selenium Grid 学习笔记

    Selenium Grid 学习笔记http://www.docin.com/p-765680298.html

  3. JDBC数据库编程基本流程

    1.加载驱动类 Class.forName("");   2.创建数据库连接 Connection con = DriverManager.getConnection(url, u ...

  4. Django数据模型及操作

    转自:http://blog.sina.com.cn/s/blog_a73687bc0101cygy.html (一) 初始化测试运行环境 import os; import sys; sys.pat ...

  5. Safari下默认10位数字为电话号码,点击拨号

    <meta content="telephone=no" name="format-detection"/>

  6. 常用CSS Reset汇总

    什么是Css Reset呢? 在 HTML标签在浏览器里有默认的样式,不同浏览器的默认样式之间也会有差别.在切换页面的时候,浏览器的默认样式往往会给我们带来麻烦,影响开发效率.所以解决的方法就是一开始 ...

  7. Pass云Docker介绍

    1.Docker 简介 Docker是一个开源可以将任何应用包装在”LXC容器”中运行的工具.如果说VMware,KVM包装的虚拟机,Docker包装的是应用.是一个实至名归的PaaS. 当应用被打包 ...

  8. LeetCode——Find Median from Data Stream

    Median is the middle value in an ordered integer list. If the size of the list is even, there is no ...

  9. 50 Android Hacks阅读笔记

    Hack 1.善用weightSum和layout_weight. 问题提出:尝试做一个button的宽度是父View的一半的效果. 关键词:weightSum = 1 , layout_weight ...

  10. Mysql学习笔记(六)增删改查

    PS:数据库最基本的操作就是增删改查了... 学习内容: 数据库的增删改查 1.增...其实就是向数据库中插入数据.. 插入语句 insert into table_name values(" ...