C# 制作IP 輸入框


最近在寫IP輸入的判斷邏輯,要實現IP控件的功能,首先要了解其功能。然后專門體驗了一把系統自帶輸入ip的控件,主要邏輯有:

1.輸入為0——255,(根據IP的實際分配情況,實際數字小於這個范圍)

2.按字母鍵時,要接管系統對按鍵事件處理的響應。

3.按“."或者空格鍵,智能跳轉到下一個IP輸入框。

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

自己制作的結果:

參考此工程,http://code.google.com/p/ipaddresscontrollib/ 一個IP輸入框為一個Panel控件,包含四個textBox和四個Label。textBox負責輸入文本及邏輯處理,label僅顯示“.”

輸入處理主要處理按鍵的keyPress事件,判斷輸入的鍵值是否為數字,“.",“ ”,其他 四種情況。同時根據textBox已有的內容,判斷輸入的是否是0-255。

邏輯判斷代碼如下:

邏輯判斷

panel的每個文本框調用上述方法(或者叫函數)

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            ipJustify(textBox1, e);           
        }

傳入參數e,是為了判斷是否接管系統的按鍵處理事件。默認情況下,函數處理完按鍵事件后,系統會調用默認按鍵處理事件。

e.handled=true; //接管

--------------------------------------------------------------------------------

不足之處:一個panel的四個文本框,不太靈活,擴展性不強。如果直接復制整個panel,則產生的textBox的序號會顛倒,求大神解。最好可以做個現成的控件,以后可以直接調用。

主要就是keyDown keyPress keyUp事件的判斷處理。這方面,我用messageBox彈窗,發現事件發生的先后順序為keyPress,keyDown,keyUp,跟網上的說法不一樣。不知何故?


免責聲明!

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



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