[window form]Visual Basic 2003~2005開發秘訣與範例大全_開箱文

  • 1739
  • 0

[window form]Visual Basic 2003~2005開發秘訣與範例大全_開箱文

收到章老師的「Visual Basic 2003~2005開發秘訣與範例大全」,希望用來改善現行開發專案中的視窗程式介面,由於專案是由C#開發,所以修改採用的code用C#去寫,如果是自行練功的部份就用VB了。總之,先開始寫第一篇吧!

目的:

視窗中的所有文字框(TextBox),一般點它時候會從最後一個字元開始輸入,希望將都能從第一個字元開始輸入。

方法:

一般當我們點選文字框(TextBox)的時候,會觸發點選(Click)事件,可是按照使用者習慣,當輸入完文字後會按Tab鍵到下一個文字框輸入,這時候會觸發輸入(Enter)事件,實作方法是在點選及輸入事件,輸入一個home按鍵讓焦點移到文字框的第一個字元。

clip_image001

clip_image002

程式碼如下,記得要引用Microsoft.VisualBasic.Devices:

        public static void HeaderTextBox(Control source)
        {
            foreach (Control txtitem in source.Controls)
            {

                if (txtitem is TextBox)
                {
                    //註冊click及Enter事件    
                    txtitem.Click += new EventHandler(txtitem_Click);
                    txtitem.Enter += new EventHandler(txtitem_Enter);              
                }
                else
                {
                    //遞迴去掃每個子控制項
                    HeaderTextBox(txtitem);
                }
            } 
        }

        private static void txtitem_Enter(object sender, EventArgs e)
        {
             //模擬按home鍵回到文字框第一個字元
            Computer mycom = new Computer();
            mycom.Keyboard.SendKeys("{HOME}");
        }
        public static void txtitem_Click(object sender, EventArgs e)
        {
            //模擬按home鍵回到文字框第一個字元
            Computer mycom = new Computer();
            mycom.Keyboard.SendKeys("{HOME}");
        }
        #endregion
主程式中引用如下:

        private void EnterData2_Load(object sender, EventArgs e)
        {
            HeaderTextBox(this);
        }

這樣就大功告成了

參考資料

Visual Basic 2003~2005開發秘訣與範例大全

TextBox 方法

My.Computer.Keyboard.SendKeys 方法