C# WinForm读书笔记
最近发现一本专门写C# WinForm的书,大喜,因为老师什么都不讲,只能靠自己了,做个读书笔记。
通过下面这种方法,可以掌握一个小技巧,窗口初始化的时候,将所有控件的Enabled属性设置为false,之后通过某个按钮或事事件,来触发需要的控件的可用性,即将Enabled属性设置为true。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Enabled = true;
textBox2.Enabled = true;
listBox1.Enabled = true;
comboBox1.Enabled = true;//设置所有代码为可用状态
comboBox1.SelectedIndex = 0;//设置组合框控件默认为第一个
textBox1.Focus();//设置第一个文本框的焦点
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Enabled = false;
textBox2.Enabled = false;
listBox1.Enabled = false;
comboBox1.Enabled = false;//设置所有代码为不可用状态
}
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
}
}
结果如下:
private void button3_Click(object sender, EventArgs e)
{
Application.Exit();
}
注意这句,Application.Exit()和Form.Close()有什么区别呢?
书中给出了答案:不论是Application.Exit()还是Form.Close(),都可以起到关闭当前窗体的作用,但是一个完备的WinForm程序从Application.Run(new Form1)开始,到Application.Exit()结束,最终将执行销毁窗体和回收系统所有的资源任务,软件系统停止;而Form.Close()只是关闭了当前窗口和对话任务,整个程序并没有退出,如果只打开了一个窗体,那么这两种方案是一致的。
一般而言,如果只有一个窗口或是MDI里面的主窗口,则执行的操作为退出成型,此时Form.Close()是一种安全的方式,但是如果打开了多个文档窗口的情况,就必须使用Application.Exit()方法。