[問題] TextBox只允許輸入數字及負號

看板C_Sharp (C#)作者 (不好玩)時間11年前 (2014/03/27 10:30), 編輯推噓3(306)
留言9則, 7人參與, 最新討論串1/1
private void endSpeed_KeyPress(object sender, KeyPressEventArgs e) { if (!Char.IsNumber(e.KeyChar) && !Char.IsPunctuation(e.KeyChar) && !Char.IsControl(e.KeyChar)) { e.Handled = true; } else if (Char.IsPunctuation(e.KeyChar)) { if (endSpeed.Text.LastIndexOf('.') != -1) { e.Handled = true; } if (e.KeyChar == '-') { if (this.endSpeed.Text.Length > 0) e.Handled = true; } } } 目前小弟在網路上搜尋只輸入數字的方法, 東拼西湊之下完成了一個堪用的過濾方式。 其主要的邏輯為 1.先篩選掉非數字浮號的字元 2.小數點只能有一個 3.負號只能在第一位 但現在有個問題了,有幾個方法無法使用 1.當textbox.text內已經有小數點,無法反白(全選)後輸入'.' 2.當textbox.text內有內容,無法反白(全選)後輸入'-' 總而言之我的過濾方式無法排除全選後輸入這種方法,是否有更好的處理方式。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.129.103.86 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1395887439.A.D7C.html

03/27 10:47, , 1F
沒寫過 感覺上可以考慮用正規表示式寫在網頁客端js碼完成
03/27 10:47, 1F

03/27 10:48, , 2F
textbox這個控制項和前端碼及後端碼都很容易操控到
03/27 10:48, 2F

03/27 11:26, , 3F
我的話會採用 觸發事件 事件中每一次都重新針對
03/27 11:26, 3F

03/27 11:27, , 4F
textbox中的文字進行整行判斷
03/27 11:27, 4F

03/27 12:26, , 5F
寫js吧
03/27 12:26, 5F

03/27 13:07, , 6F
client js keydown 限制 server regular 檢查
03/27 13:07, 6F
小弟是C#初學者,以前有一些C++的經驗, 我是要做一個視窗軟體 截圖 http://ppt.cc/GDXR 已經找到解決方法,自問自答一下 http://ideone.com/NKOWRA ※ 編輯: unfun 來自: 220.129.103.86 (03/27 13:41)

03/28 20:48, , 7F
套jquery.validate程式都不用寫
03/28 20:48, 7F

04/01 04:39, , 8F
if(!double.TryParse(input, out d)) error;
04/01 04:39, 8F

06/05 21:41, , 9F
用java 寫在前台 onkeydown return only key
06/05 21:41, 9F
文章代碼(AID): #1JCurFry (C_Sharp)
文章代碼(AID): #1JCurFry (C_Sharp)