自学C# Winform程序(一)

本文档详细介绍了C# Winform程序的创建和控件使用,包括Form、Control、MessageBox、Button、Label、TextBox等常用控件的属性、方法、事件及其应用示例,帮助初学者掌握Winform应用程序开发的基础知识。
摘要由CSDN通过智能技术生成

一、打开vs2015

       文件-新建-项目-选择Windows窗体应用程序

二、工具箱目录

  1. 通用
  2. form类
  3. control 类
  4. messagebox 类
  5.  button 类
  6.  label 类
  7.  textbox 类
  8.  richtextbox 类
  9.  listbox类
  10.  checklistbox 类
  11.  combobox 类
  12.  radiobox 类
  13.  checkbox 类
  14.  tabcontrol 类
  15. picturebox 类
  16.  panel 类
  17.  menustrip 类
  18. toolstripmenuitem 类
  19. toolstrip 类
  20. toolstripbutton 类
  21. statusstrip类
  22. timer 类
  23. progressbar 类
  24. openfiledialog 类


 

 

●·● 通用:

1. 按Ctrl键同时拉动控件,可以复制一个控件。

2. 在Form上点右键》查看代码,或是按F7。F4显示属性。

3. 实现文件夹打开显示功能,类似右键》打开所在文件夹。
  System.Diagnostics命名空间:
    Process类:提供对本地和远程进程的访问并使您能够启动和停止本地系统进程。

复制代码

1. 用Explorer.exe打开文件夹:
  System.Diagnostics.Process.Start("Explorer.exe",@"D:\DOCUMENTS\"); 
  System.Diagnostics.Process.Start("Explorer.exe",@"D:\DOCUMENTS"); 

2. 用notepad.exe打开记事本:
  System.Diagnostics.Process.Start("notepad.exe",@"F:\Desktop\1.txt"); 

3. 用Word的快捷方式打开Word文件:
  System.Diagnostics.Process.Start(@"F:\Desktop\Word 2010", @"F:\Desktop\1.docx");

4. 用Firefox打开网址:www.baidu.com:
  System.Diagnostics.Process.Start(@"C:\Program Files (x86)\Mozilla Firefox\firefox.exe", "www.baidu.com");

复制代码

4. 建立事件模板,然后调用:由于事件的监视及管理是由Application对象进行的,程序员不需要知道用户何时响应事件或者是响应了什么事件,只需要为事件添加响应方法即可。添加方法”+=“,取消方法”-=“。参数sender为事件发出者;e为事件的附加数据,事件不同,e也不同。

复制代码

        public Form1()
        {
            InitializeComponent();
            textBox2.MouseMove += new MouseEventHandler(textBox_MouseMove);     //调用事先建立的模板
            textBox3.MouseMove += new MouseEventHandler(textBox_MouseMove);     //四个TextBox可以实现相同的功能
            textBox4.MouseMove += new MouseEventHandler(textBox_MouseMove);     //通过双击Tab键可以自动实现后半部分
            textBox5.MouseMove += new MouseEventHandler(textBox_MouseMove);
        } 
        private void textBox_MouseMove(object sender, MouseEventArgs e)     //建立事件模板
        {
            TextBox tb = sender as TextBox;
            tb.BackColor = Color.Red;
        }

复制代码

View Code - TextBox_KeyPress 只允许数字输入

5. 用代码在Form中写控件,同时可以编写控件数组,例如:

复制代码

            Label[] lbs = new Label[5];     //建立标签控件数组
            for (int i = 0; i < lbs.Length; i++)
            {
                lbs[i] = new Label();       //在声明下Label类
                this.Controls.Add(lbs[i]);      //将Label加到控件集中
                lbs[i].Left = 14;
                lbs[i].Top = 30 * i + 14;       //设置控件的位置
                lbs[i].Width = 400;         //设置控件的宽度
            }

复制代码

        首先用Label建立数组,接下来遍历数组,给数组的每个要素声明Label,接下来用Controls的Add方法将用代码写的控件添加到控件集中,同时设置控件的位置和长宽。

6. 用代码执行事件:首先是双击控件,生成一个button1_Click(object sender,EventArgs e)的函数,通过代码直接调用这个函数,既可以调用这个事件,说到底就是调用函数。

复制代码

        private void button1_Click(object sender, EventArgs e)
        {
            axWindowsMediaPlayer1.URL = musicPath + @"music\1.mp3";
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            button1_Click(button1, e);    //通过代码调用按钮单击事件,其他事件调用是类似的!
        }       

复制代码

---------------------------------------------------------------------------------------------------------

 

●·● Form 类

1. Form 属性:

  • TopMost:获取或设置一个值,指示该窗体是否应显示为最顶层窗体。
  • OwnedForms:获取 Form 对象的数组,这些对象表示此窗体拥有的所有窗体。(先要用AddOwnedForm()方法来添加窗体。)

    View Code - 实现跨窗体关闭窗体

  • AcceptButton:获取或设置当用户按 Enter 键时所单击的窗体上的按钮。
  • CancelButton:获取或设置当用户按 Esc 键时单击的按钮控件。
  • MaximizeBox:获取或设置一个值,该值指示是否在窗体的标题栏中显示“最小化”按钮。(bool)
  • MinimizeBox:获取或设置一个值,该值指示是否在窗体的标题栏中显示“最大化”按钮。(bool)
  • MaximumSize:获取窗体可调整到的最大大小。
  • MinimumSize:获取窗体可调整到的最小大小。
  • ClientSize:获取或设置窗体工作区的大小。窗体工作区的大小是除边框和标题栏外窗体的大小。窗体的工作区是窗体内可放置控件的区域。
  • Size:获取或设置窗体的大小。包括外边框!ClientSize要比Size表示的范围小一点。
    • Width:
    • Height:
  • Opacity:获取或设置窗体的不透明度级别。默认值是1,为不透明,0为完全看不见。
  • IsMdiContainer:获取或设置一个值,该值指示窗体是否为多文档界面 (MDI) 子窗体的容器。(bool)
  • MdiParent:获取或设置此窗体的当前多文档界面 (MDI) 父窗体。(子窗体显示在父窗体内部)
  • MdiChildren:获取窗体的数组,这些窗体表示以此窗体作为父级的多文档界面 (MDI) 子窗体。
    • Length:获取子窗体的个数。
  • ActiveMdiChild:获取当前活动的多文档界面 (MDI) 子窗口。
  • BackgroundImage:获取或设置在控件中显示的背景图像。 
    • Size:获取图片的大小。
  • FormBorderStyle:获取或设置窗体的边框样式。
    • None:无边框。
    • FixedSingle:固定的单行边框。
    • Fixed3D:固定的三维边框。
    • FixedDialog:固定的对话框样式的粗边框。
    • Sizable:可调整大小的边框。
    • FixedToolWIndow:
    • SizableToolWindow:
  • WindowState:获取或设置窗体的窗口状态。
    • Normal,Minimized,Maximized
  • KeyPreview:获取或设置一个值,该值指示在将键事件传递到具有焦点的控件前,窗体是否将接收此键事件。 如果窗体将接收所有键事件,则为 true;如果窗体上当前选定控件接收键事件,则为 false。默认为 false

2. Form 方法:

  • Activate:激活窗体并给予它焦点。
  • AddOwnedForm:向此窗体添加附属窗体。
  • Close:关闭窗体。
  • LayoutMdi:在 MDI 父窗体内排列多文档界面 (MDI) 子窗体。MdiLayout 枚举
    • Cascade:所有 MDI 子窗口均层叠在 MDI 父窗体的工作区内。
    • TileHorizontal:所有 MDI 子窗口均水平平铺在 MDI 父窗体的工作区内。
    • TileVertical:所有 MDI 子窗口均垂直平铺在 MDI 父窗体的工作区内。
    • ArrangeIcons:所有 MDI 子图标均排列在 MDI 父窗体的工作区内。
  • Hide:对用户隐藏控件。
  • Show:显示窗体。两个窗体都可以操作!
  • ShowDialog:将窗体显示为模式对话框。只能操作对话框窗体!
      通过在 Load 事件中修改 Location 可以改变显示的位置!
  • Focus:用于激活窗体并给予其焦点。
  • SetBounds(int x, int y, int width, int height):x和y为窗体位置坐标,width为窗体宽度,height为窗体高度。
  • SetDesktopLocation(int x, int y):以桌面坐标设置窗体的位置。
  • SetDesktopBounds(int x, int y, int width, int height):以桌面坐标设置窗体的边界。

3. Form 事件:

  • Load:第一次显示窗体前发生。
  • Move:窗体移动的时候触发。
  • Activated:窗体获得焦点(被激活)时引发。
  • Deactivate:窗体失去焦点(未激活)时引发。
  • FormClosing:在关闭窗体时发生。
    其中 e 有两个重要的属性!
      Cancel:获取或设置指示是否应取消事件的值。true 则取消关闭动作!
      CloseReason:获取一个值,该值指示关闭窗体的原因。

    复制代码

            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {  
                DialogResult a;
                a = MessageBox.Show("你真的要关闭吗(⊙_⊙?)", "警告", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
                if (a == DialogResult.No)       //DialogResult枚举的值, 根据上面MessageBox中的按钮来定
                {
                    e.Cancel = true;       //单击No, 取消关闭.
                }
            }

    复制代码

  • FormClosed:关闭窗体后发生。
  • KeyUp:在控件有焦点的情况下释放键时发生。
  • KeyDown:在控件有焦点的情况下按下键时发生。
  • KeyPress:在控件有焦点的情况下按下键时发生。
    ※ 可以通过新建一个空的textbox,然后用下面语句来吸走焦点!
    textBox1.Focus();
    ※ 参考:解决:无法引发Form.KeyUp或Form.KeyDown事件 

4. Form扩展:

  • 添加的窗体Form2,还是一个类,因此不能直接用,还要先new一个才能用,类似下面的例子,要想加载Form2,首先要new一个Form2,然后在用Show方法。

    1             Form2 form2 = new Form2();
    2             form2.Show();
  • 在Form2中调用Form1中的TextBox文本实现&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值