用户控件:
相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件。
使用方法:在项目上右键、添加、用户控件,之后用户控件的编辑与普通容器控件类似。如果要在后台往窗体中添加,
将其实例化,然后添加到想要添加的容器的Control集合中。
动态创建添加控件:
可以在一个大容器里一次性放入多个控件
public Form2(haoyou hao) { InitializeComponent(); f = hao; } private void button1_Click(object sender, EventArgs e) { //先获取用户输入的是几 int count = Convert.ToInt32(textBox1.Text); flowLayoutPanel1.Controls.Clear(); //循环创建按钮,然后添加到容器中 for (int i = 1; i <= count; i++) { Button btn = new Button(); btn.Text = i.ToString(); flowLayoutPanel1.Controls.Add(btn); } }
timer控件
组件中的最后一个控件,功能是可以根据用户自定义的时间间隔来触发时间,不会印象窗体本身的其他事件进行。
属性:
Enable 设置控件是否启用
Interval 设置事件的频率,以毫秒为单位
事件只有一个:Tick事件
例:使用timer控件获取当前时间并即时变动
private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("yyyy年MM月dd日hh时mm分ss秒"); }
例:每2小时提示用户看电脑时间已经很久了,需要休息了
把timer2.Interval=7200000;//7200秒
private void timer2_Tick(object sender, System.EventArgs e) { timer1.Enabled=false; MessageBox.show("需要休息了,开机已经2小时了"); timer1.Enabled=true;//如果不先把enabled设置成false对话框会一直弹下去 }
控件联动:
类似地区选择,当选的某个省份,后面的下拉框相对变成对应省份的区县
public Form2() { InitializeComponent(); //绑定省 comboBox1.DataSource = new ChinaData().Select("0001"); comboBox1.DisplayMember = "AreaName"; comboBox1.ValueMember = "AreaCode"; //绑定市 comboBox2.DataSource = new ChinaData().Select(comboBox1.SelectedValue.ToString()); comboBox2.DisplayMember = "AreaName"; comboBox2.ValueMember = "AreaCode"; //绑定区县 comboBox3.DataSource = new ChinaData().Select(comboBox2.SelectedValue.ToString()); comboBox3.DisplayMember = "AreaName"; comboBox3.ValueMember = "AreaCode"; } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { //绑定市 comboBox2.DataSource = new ChinaData().Select(comboBox1.SelectedValue.ToString()); comboBox2.DisplayMember = "AreaName"; comboBox2.ValueMember = "AreaCode"; } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { //绑定区县 comboBox3.DataSource = new ChinaData().Select(comboBox2.SelectedValue.ToString()); comboBox3.DisplayMember = "AreaName"; comboBox3.ValueMember = "AreaCode"; }