窗体==>>初始Windows程序

初识Windows程序

01.创建Windows程序(VS)

01.打开Visual Studio开发工具

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

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

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

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

02.认识Windows程序

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

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

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

04.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.关于窗体项目的注意点:

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

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

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

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

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

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

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

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

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 "1":
                case "3":
                case "5":
                case "7":
                case "8":
                case "10":
                case "12":
                    for (int i = 1; i <= 31; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }

                    break;
                case "4":
                case "6":
                case "9":
                case "11":
                    for (int i = 1; i <= 30; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }
                    break;
                case "2":
                    for (int i = 1; i <= 29; i++)
                    {
                        comboBox_ri.Items.Add(i);
                    }
                    break;

                default:
                    break;
            }
        }

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

  

核心代码:

 public partial class Guess : Form
    {
        public Guess()
        {
            InitializeComponent();
        }
        public int num = 0;//定义为接收随机数
        public int count = 0;
//在"新游戏"的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之间的随机整数(包括1,不包括5)
        }

//在"猜一猜"按钮的Click事件中
   private void button_guess_Click(object sender, EventArgs e)
        {
            count++;
            int num1 = 0;
            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);

                    }

            }
        }
    }
时间: 11-24

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

初始Windows程序

1.属性 窗体标题 Name  窗体的图标 Icon  背景图片 BackgroundImage 背景颜色 BackColor  最大化按钮 MaxIMonBox  最小化按钮 Minimun 窗体边框样式 FormBorderStyle  窗体初始位置 StartPosition 窗体状态 WindowsState  背景图片拉伸 BackgroundImageLayout  窗体标题 Text 窗体显示状态 TopMost  关闭窗口 Close()   帮助按钮 HelpButton 显示

第三章—Windows程序

这一章我都不知道该如何写了,呵呵~~ 毕竟,Win32是一个非常深奥的系统,目前还容不得我这种 小辈在这儿说三道四,不过,我既然是要写给那些入门阶段的朋友们看的,又不是写给那些搞程序设计老鸟看的,所以,我也犯不着怕被人背后指着骂 本章的名字就叫<Windows程序>而不是<Windows程序设计>所以,我只是讲一些关于Windows程序运作的原理: Windows 为什么叫Windows,相信所有用过的朋友都可以明白,那桌面上一个一个的窗口,就是它名字的由来.也就是这一个又一个窗口

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

1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源.这里的While循环使用了GetMessage() 这个方法,这是个阻塞方法,也就是队列为空时方法就会阻塞,从而这个While循环停止运动,这避免了一个程序把cpu无缘无故的耗尽,让其他程序难以得到响应.当然在某些需要cpu最大限度运动的程序里面就可以使用另外的方法,例如某些

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

windows程序消息机制(Winform界面更新有关) 转自:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html 1. Windows程序消息机制 Windows GUI程序是基于消息机制的,有个主线程维护着消息泵.这个消息泵让windows程序生生不息. Windows程序有个消息队列,窗体上的所有消息是这个队列里面消息的最主要来源.这里的While循环使用了GetMessage() 这个方法,这是个阻塞方法,也就是队列

初识Windows程序

首先,我们创建第一个Windows程序,一共分为4个步骤: 1.打开Visual Studio开发工具 2.选择"文件"→"新建"→"项目"命令 3.项目类型选择"VisualC#" 4.模板选择"Windows窗体应用程序" 选择好位置,为项目命名后确认. 认识Windows程序 Form1.cs:窗体文件,程序员对窗体编写的代码一般都存放在这个文件中 Form1.Designer.cs:窗体设计文件,其

Windows程序----初识Windows程序

先来看一些励志名言来激励一下自己吧!  励志名言:每一发奋发奋的背后,必有加倍的赏赐 1.有无目标是成功者与平庸者的根本差别. 2.成功不是将来才有的,而是从决定去做的那一刻起,持续累积而成. 3.当一个人先从自我的内心开始奋斗,他就是个有价值的人. 4.时间给勤勉的人留下智慧的力量,给懒惰的人留下空虚和悔恨. 5.如果可以重新活一次,每个人都将是成功者. 1.创建一个windows应用程序,一共包括四步 (1)打Visual Studio 开发工具1 (2)选择”文件”→”新建”→”项目”命令

C#创建无窗体的应用程序

示例程序 这是初学C#时困惑了很久才解决的问题,突然想起来拿出来和大家分享. 当初我是这样做的: 1.      在窗体初始化时(构造函数里面),添加一句This.Visible = false; 2.      窗体初始大小设定为非常小,并且放到屏幕一个不起眼的角落 然而这样并没有解决问题.因为程序启动时总会闪出一现窗体.于是去Program.cs里面改Main函数(C#工程首先进行的static Main函数在工程属性->Application->Startup object里面可以设定,

构建布局良好的Windows程序

在认识了windows的基本控件后,再来更深一层次的来使用这些基本的控件,使我们的窗体程序布局更加的合理 >>>Windows中的MenuStrip和ToolStrip 那么究竟这两个控件能实现什么功能呢? >>MenuStrip是指应用程序运行中出现在界面上的选项列表,供用户选择执行.在可视化程序中,借助菜单栏可以将应用程序所提供的各种功能一一呈现给使用者. >>ToolStrip在Windows程序中,工具栏是综合了各种工具以便于用户使用的一个区域. 接下来见

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

一.引言 要想熟练掌握Windows应用程序的开发,首先需要理解Windows平台下程序运行的内部机制,然而在.NET平台下,创建一个Windows桌面程序,只需要简单地选择Windows窗体应用程序就可以了,微软帮我们做了非常好的封装,以至于对于很多.NET开发人员至今也不清楚Windows 平台下程序运行的内部机制,所以本专题将深入剖析下Windows 程序的内部运行机制. 二.Windows平台下几个基础概念 有朋友会问,理解了程序运行的内部机制有什么用,因为在我们实际开发中用得微软提供的