[C#学习笔记16]WF项目结构、Partial部分类、窗体与事件委托使用分析
WinForm开发学习内容:UI设计、数据库应用、基于C#+ADO.NET+SQLSever的系统开发
一、WinForm项目与窗体控件
创建窗口应用程序
拖控件放到窗体界面中
窗体界面按F7进入窗体后台程序
双击界面中的控件自动生成控件单机事件方法及后台生成将click事件和事件方法关联
新建类MyForm.cs并继承父窗体Form:
public class MyForm:Form注意引用命名空间using System.Windows.Froms
1.部分类的使用partial
好处:让自动生成的代码后置,我们编写程序的代码显得更加简洁。
特点:在最后编译的时候,仍然编译成一个窗体类。
form类构造方法里初始化所有控件
主窗体使用FromMain命名
2.窗体和控件的基本使用、Event事件
理解事件:
在.NET平台上面,给我们所用的这些控件,封装了很多的事件,所谓事件,就是对用户操作的某一个行为,进行封装。
比如,当用户单击一个按钮的时候,单击这个动作,已经被封装成了Click事件,那么我们只要把这个事件拿出来,
当用户触发单击这个动作的时候,也就是这个事件被调用了,我们就可以在这个事件中,完成我们需要的任务。
界面设计右键显示菜单:
ContextMenuScript控件拖入窗体界面中,添加相应菜单选项,并在窗体属性中找到相应名字修改成右键对应菜单显示
按键属性中闪电符号里面列出了按键的所有事件,手动将控件的事件和事件方法关联(委托)
this.btnTest.Click += new System.EventHandler(this.btnMyTest_Click);
事件方法:
private void btnMyTest_Click(object sender, EventArgs e)
{
//sender表示当前控件的对象
//Button btn = sender as Button;
Button btn = (Button)sender;
MessageBox.Show(btn.Tag.ToString());
//可以动态的取消事件的关联
this.btnTest.Click -= new System.EventHandler(this.btnMyTest_Click);
}
双击闪电图表下的对应事件,会自动产生事件方法并将控件的事件和事件方法关联
鼠标放到控件上事件方法的实现:
private void btnTest_MouseEnter(object sender, EventArgs e)
{
//Button btn = (Button)sender;
//MessageBox.Show(btn.Tag.ToString());
}
取消的事件,通过闪电图表下找到对应事件单机选择重置即可,注意事件方法还保留着,若不移除再次自动产生事件方法会重新生成并+_1后缀事件方法,不会覆盖之前的,可以手动在闪电图表下对应事件右侧选择可选的事件方法。
窗体常用事件:
load窗口控件初始化完成后要执行的事件(一般不用)
//窗体所有控件和初始化完毕后要执行的事件,我们通常不用
private void FrmMain_Load(object sender, EventArgs e)
{
//不建议在这里编写初始化内容...
}
FormClosed窗口关闭后发生
private void FrmMain_FormClosed(object sender, FormClosedEventArgs e)
{
//可以在这个地方编写你要做的其他任务...
MessageBox.Show("窗体已经关闭");
}
FormClosing窗体关闭前发生(关闭前加提示框确认是否要关闭窗体)
//窗体关闭之前发生的
private void FrmMain_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("确认要关闭窗体吗?", "关闭确认",
MessageBoxButtons.OKCancel,
MessageBoxIcon.Question);
if (result == DialogResult.Cancel)//用户取消关闭
{
e.Cancel = true;
}
}