我想限制文本框只接受C#中的數字。我怎麼做?將文本框輸入限制在C#中的數字#
回答
您是否在WinForms中嘗試過MaskedTextBox控件?
看一看像這樣
最粗下來,這樣做是做這樣的事情的骯髒的方式:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.textBox1.KeyPress += new KeyPressEventHandler(textBox1_KeyPress);
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = !char.IsDigit(e.KeyChar);
}
}
你還是無法與安全這種方法,因爲用戶仍然可以將非數字字符複製並粘貼到文本框中。無論如何,您仍然需要驗證您的數據。
用戶也不能刪除字符。 – 2010-06-28 13:28:58
@LucasB,除非他們削減。 :) – 2013-02-07 21:14:10
這很好,我推薦的唯一改變是啓用Backspace字符: – 2013-05-02 19:36:10
您可以使用AJAX Control Toolkit的FilterTextBox。使用這個你可以允許/禁止任何字符類型。這非常靈活。
從別人在我之前已經說過,我們幾乎知道你會在使用這個東西,的WinForms,ASP.NET,Silverlight的...
但現在我需要一個機會,這是WinForm的:)
private void TxtBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!System.Text.RegularExpressions.Regex.IsMatch(e.KeyChar.ToString(), "\\d+"))
e.Handled = true;
}
這不允許退格 – 2012-06-26 22:27:41
也不是這裏所問的。但如果你需要它..如果(e.KeyChar = vbKeyBack){return;} – sv88erik 2012-08-07 11:51:51
您可以使用Microsoft.VisualBasic.Information.IsNumeric是數字函數。只需添加引用Microsoft.VisualBasic程序
private void textBox1_Validating(object sender,
System.ComponentModel.CancelEventArgs e) {
if (!Microsoft.VisualBasic.Information.IsNumeric(textBox1.Text)) {
e.Cancel = true;
} else {
// Do something here
}
}
這允許用戶輸入科學計數法是不平凡的篩選。
不知道這是正確的做法,但它爲我工作,在TextChanged事件的TextBox運行它:
private void CoordinateValidation(object sender, TextChangedEventArgs e) {
TextBox inputBox = e.OriginalSource as TextBox;
inputBox.TextChanged -= CoordinateValidation;
int caretPos = inputBox.CaretIndex;
foreach (TextChange change in e.Changes) {
if (inputBox.Text.Substring(change.Offset, change.AddedLength).Any(c => !ValidChars.Contains(c)) ||
inputBox.Text.Count(c => c == '.') > 1 ||
(inputBox.Text.Length > 0 && inputBox.Text.Substring(1).Contains('-'))) {
inputBox.Text = inputBox.Text.Remove(change.Offset, change.AddedLength);
caretPos -= change.AddedLength;
}
}
inputBox.CaretIndex = caretPos;
inputBox.TextChanged += CoordinateValidation;
}
這可能不是最好的辦法,但對WPF的TextBox工作正常。 ..
private void textBox1_TextChanged(object sender, TextChangedEventArgs e)
{
string originalText = ((TextBox)sender).Text.Trim();
if (originalText.Length>0)
{
int inputOffset = e.Changes.ElementAt(0).Offset;
char inputChar = originalText.ElementAt(inputOffset);
if (!char.IsDigit(inputChar))
{
((TextBox)sender).Text = originalText.Remove(inputOffset, 1);
}
}
}
有一些錯誤,但簡單的方法:d
private void textbox1_TextChanged(object sender, EventArgs e)
{
char[] originalText = textbox1.Text.ToCharArray();
foreach (char c in originalText)
{
if (!(Char.IsNumber(c)))
{
textbox1.Text = textbox1.Text.Remove(textbox1.Text.IndexOf(c));
lblError.Visible = true;
}
else
lblError.Visible = false;
}
textbox1.Select(textbox1.Text.Length, 0);
}
看一看下面的代碼
private void txtbox1_KeyPress(object sender, KeyPressEventArgs e)
{
const char Delete = (char)8;
e.Handled = !Char.IsDigit(e.KeyChar) && e.KeyChar != Delete;
}
這將是有益的,但用戶可以複製和粘貼文字:-)
- 1. 僅在文本框中將輸入限制爲數字? (c#)
- 2. 將文本框輸入限制爲C#中的數字和點(。)
- 3. 將文本框/文本框中的輸入限制爲僅在J2me中使用字母數字輸入
- 4. 將輸入限制爲數字從文本框中刪除零
- 5. 將HTML輸入限制爲文本框
- 6. 將VBA userform文本框中的輸入限制爲僅限數字
- 7. Jquery限制輸入框中的文本
- 8. 將文本框的輸入限制爲數字時遇到問題C#
- 9. 限制在文本框中允許的字符(輸入金額)
- 10. 如何限制在字母數字文本框中輸入9位數字
- 11. C#文本框限制輸入字符和快捷鍵
- 12. 限制文本框輸入用的DocumentFilter
- 13. 如何將文本框輸入限制爲html中的數字0-10
- 14. 在文本框輸入中限制字符
- 15. 限制在ExtJs文本框/編號字段中輸入的輸入
- 16. 如何在文本輸入框中添加文本限制
- 17. 對話框將輸入限制爲只能輸入數字
- 18. 如何限制在MFC中輸入文本框中的字符數?
- 19. 文本框中的字數限制
- 20. 限制輸入在c中有一個連字符( - )用於文本框#
- 21. C#根據複選框限制和分類文本框輸入
- 22. 代表文本框,並限制只能輸入數字
- 23. 由PHP限制文本框輸入值
- 24. 文本框用戶輸入限制
- 25. 如何限制輸入文本在angular2中的數字範圍?
- 26. 輸入文字的字符數限制
- 27. 限制文本框中的數字和字母 - C#
- 28. 在文本框中限制文字
- 29. 將html文本輸入限制爲特定字節數?
- 30. C#如何將數字輸入限制爲一個數字
HTML? Windows窗體? WPF? Silverlight的? – 2009-12-20 08:14:33
如果C#相關,也許可能是一個愚蠢的建議,但評估NumericUpDown控件是否合適。 – TechNyquist 2015-09-07 08:29:41