winform用户控件、动态创建添加控件、timer控件、控件联动
用户控件:(1)
相当于自定义的一个panel 里面可以放各种其他控件,并可以在后台一下调用整个此自定义控件。
使用方法:在项目上右键、添加、用户控件,之后用户控件的编辑与普通容器控件类似。如果要在后台往窗体中添加,
将其实例化,然后添加到想要添加的容器的Control集合中。
动态创建添加控件:
配合上面的用户控件,实现类似QQ界面的打开自动加载好友昵称和签名
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
public Form1() { InitializeComponent(); //将当前登陆的账号的全部好友信息取出来 List<App_Code.haoyou> hhlist = new haoyouData().Select(label1.Text); //动态创建好友用户控件,添加到容器中去 for (int i = 0; i < hhlist.Count; i++) { haoyou hy = new haoyou(); hy.label1.Text = hhlist[i].Fnickname; hy.label2.Text = hhlist[i].Fcontent; flowLayoutPanel1.Controls.Add(hy); } }
timer控件:
组件中的最后一个控件,功能是可以根据用户自定义的时间间隔来触发时间,不会印象窗体本身的其他事件进行。
属性:
Enable 设置控件是否启用
Interval 设置事件的频率,以毫秒为单位
事件只有一个:Tick事件
例:使用timer控件获取当前时间并即时变动
private void timer1_Tick(object sender, EventArgs e) { label1.Text = DateTime.Now.ToString("yyyy年MM月dd日hh时mm分ss秒"); }
控件联动:
类似地区选择,当选的某个省份,后面的下拉框相对变成对应省份的区县
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
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"; }