1. 程式人生 > >多控制元件焦點迴圈移動

多控制元件焦點迴圈移動

實現效果:

  

知識運用:

  TextBox控制元件的Enter事件    //當該控制元件處於當前窗體的活動控制元件時發生

  Leave事件          //當該控制元件不處於當前窗體的活動控制元件時發生

  以及KeyDown事件      //在控制元件有焦點的情況下按下鍵時

  和自定義方法Clear_Control //遍歷指定控制元件

實現程式碼:

        private void AllControl_Enter(object sender, EventArgs e)
        {
            ((TextBox)sender).BackColor = Color.CornflowerBlue;
        }

        private void AllControl_Leave(object sender, EventArgs e)
        {
            ((TextBox)sender).BackColor = Color.White;
        }

        private void AllControl_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue==13)
            {
                int n = Convert.ToInt32(((TextBox)sender).Tag.ToString());
                Clear_Control(groupBox1.Controls,n,6);
            }
        }

        private void Clear_Control(Control.ControlCollection con,int n,int m)
        {
            int tem_n = 0;
            foreach (Control c in con)
            {
                if (c.GetType().Name == "TextBox")
                {
                    if (n == m)
                        tem_n = 1;
                    else
                        tem_n = n + 1;
                    if (Convert.ToInt32(((TextBox)c).Tag.ToString()) == tem_n)
                        ((TextBox)c).Focus();
                }
            }
        }