一、打开vs2015
文件-新建-项目-选择Windows窗体应用程序
二、工具箱目录
- 通用
- form类
- control 类
- messagebox 类
- button 类
- label 类
- textbox 类
- richtextbox 类
- listbox类
- checklistbox 类
- combobox 类
- radiobox 类
- checkbox 类
- tabcontrol 类
- picturebox 类
- panel 类
- menustrip 类
- toolstripmenuitem 类
- toolstrip 类
- toolstripbutton 类
- statusstrip类
- timer 类
- progressbar 类
- 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,然后用下面语句来吸走焦点!
※ 参考:解决:无法引发Form.KeyUp或Form.KeyDown事件textBox1.Focus();
4. Form扩展:
-
添加的窗体Form2,还是一个类,因此不能直接用,还要先new一个才能用,类似下面的例子,要想加载Form2,首先要new一个Form2,然后在用Show方法。
1 Form2 form2 = new Form2(); 2 form2.Show();
- 在Form2中调用Form1中的TextBox文本实现&#