91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

.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

阆中市| 酉阳| 丰都县| 孙吴县| 塘沽区| 隆子县| 镇康县| 瑞金市| 平顺县| 万宁市| 彰武县| 旬阳县| 达拉特旗| 思茅市| 绥棱县| 云阳县| 石家庄市| 平江县| 留坝县| 吉水县| 水城县| 迭部县| 怀柔区| 吉木乃县| 牙克石市| 兴国县| 平阴县| 文水县| 卢湾区| 伊春市| 敦煌市| 娄底市| 土默特右旗| 广德县| 孟村| 花垣县| 孙吴县| 海晏县| 象山县| 佛冈县| 麻阳|