亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

.nec# 中怎么利用textbox輸入數字

發布時間:2021-07-07 17:47:20 來源:億速云 閱讀:361 作者:Leah 欄目:編程語言

本篇文章為大家展示了.nec# 中怎么利用textbox輸入數字,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

當界面上要用戶輸入只有數字的字符時,默認的c# textbox數字是不能勝任的,網上有很多網友們提供了很多的做法,我總結了一下寫了一個在C#下的實現,做到了如下的幾點:

1:只能輸入類似這樣的字符:-123456.789;1234.789;

2:在輸入的字符串中不能存在兩個點符:12456.78//正確;12.456.78//不正確;

3:如果表示負數可以在字符串的最前面加一個減號“-”,也只能加到弟一個字符的位置;

4:可以用復制粘帖功能和菜單功能,但是只對能正確格式的字符串有效,比如:12.34可以,Abc不可以;

5:只是得到一個字符串,還可以在這個基礎上再改進自己所需的,經如添加對十六進制的支持等。

代碼如下在.NET下用C#寫的:

using System;  using System.Windows.Forms;   namespace NumTextBox  {   ///   /// NumTextBox 的摘要說明。   ///   public class TextBoxNumEx:System.Windows.Forms.TextBox   {    public const int WM_CONTEXTMENU = 0x007b;//右鍵菜單消息     public const int WM_CHAR = 0x0102;       //輸入字符消息(鍵盤輸入的,輸入法輸入的好像不是這個消息)    public const int WM_CUT = 0x0300;        //程序發送此消息給一個編輯框或combobox來刪除當前選擇的文本    public const int WM_COPY = 0x0301;       //程序發送此消息給一個編輯框或combobox來復制當前選擇的文本到剪貼板    public const int WM_PASTE = 0x0302;      //程序發送此消息給editcontrol或combobox從剪貼板中得到數據    public const int WM_CLEAR = 0x0303;      //程序發送此消息給editcontrol或combobox清除當前選擇的內容;    public const int WM_UNDO = 0x0304;        //程序發送此消息給editcontrol或combobox撤消***一次操作     public TextBoxNumEx()    {     //     // TODO: 在此處添加構造函數邏輯     //    }    protected override void WndProc(ref Message m)     {      switch(m.Msg)     {       case WM_CHAR:       System.Console.WriteLine(m.WParam);       bool isSign = ((int)m.WParam == 45);       bool isNum = ((int)m.WParam >= 48) && ((int)m.WParam <= 57);       bool isBack = (int)m.WParam == (int)Keys.Back;       bool isDelete = (int)m.WParam == (int)Keys.Delete;//實際上這是一個"."鍵       bool isCtr = ((int)m.WParam == 24) || ((int)m.WParam == 22) || ((int)m.WParam == 26) ||((int)m.WParam == 3);        if( isNum || isBack || isCtr)       {        base.WndProc (ref m);       }       if (isSign)       {        if (this.SelectionStart!=0)        {         break;        }        base.WndProc (ref m);        break;       }       if (isDelete)       {        if (this.Text.IndexOf(".")<0)        {         base.WndProc (ref m);        }       }       if ((int)m.WParam == 1)       {        this.SelectAll();       }       break;      case WM_PASTE:       IDataObject iData = Clipboard.GetDataObject();//取剪貼板對象              if(iData.GetDataPresent(DataFormats.Text)) //判斷是否是Text       {        string str = (string)iData.GetData(DataFormats.Text);//取數據        if (MatchNumber(str))         {         base.WndProc (ref m);         break;        }       }       m.Result = (IntPtr)0;//不可以粘貼       break;      default:       base.WndProc (ref m);       break;     }    }    private bool MatchNumber(string ClipboardText)    {     int index=0;     string strNum = "-0.123456789";     index = ClipboardText.IndexOf(strNum[0]);     if (index>=0)     {      if (index>0)      {       return false;      }      index = this.SelectionStart;      if (index>0)      {       return false;      }     }      index = ClipboardText.IndexOf(strNum[2]);     if (index!=-1)     {      index = this.Text.IndexOf(strNum[2]);      if (index!=-1)      {       return false;      }     }      for(int i=0; i<ClipboardText.Length; i++)     {      index = strNum.IndexOf(ClipboardText[i]);      if (index <0)      {       return false;      }     }     return true;    }   }  }

上述內容就是.nec# 中怎么利用textbox輸入數字,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀什市| 繁昌县| 通渭县| 吉木萨尔县| 卓尼县| 万年县| 电白县| 高州市| 扶绥县| 沅江市| 吕梁市| 泽普县| 新建县| 左贡县| 辽宁省| 县级市| 新巴尔虎右旗| 民勤县| 东兰县| 吴江市| 广南县| 离岛区| 赣榆县| 浮梁县| 云阳县| 泽库县| 禄劝| 枣强县| 闻喜县| 丹东市| 龙江县| 武清区| 庆云县| 新民市| 二连浩特市| 马山县| 嘉祥县| 青阳县| 大兴区| 略阳县| 华容县|