winform 用戶控件、 動態創建添加控件、timer控件、控件聯動


用戶控件:

相當於自定義的一個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";
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM