2013-04-20 138 views
0

大家好,我有一個按鍵按下事件如下C#閱讀文本框忽略字符

if (e.KeyCode == Keys.C && e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) 
{ 
    var amount = textBox1.Text; 
    var total = label3.Text; 
    decimal damount = Math.Round(Convert.ToDecimal(amount), 2); 
    decimal dtotal = Convert.ToDecimal(total); 
    var ntotal = dtotal - damount; 
    var ndue = Math.Round(Convert.ToDecimal(ntotal), 2); 
    var ntotal1 = Convert.ToString(ndue); 
    if (ndue <= 0) 
    { 
     panel4.Show(); 
     label4.Text = ntotal1; 
    } 
    else 
    { 
     label3.Text = ntotal1; 
    } 
    textBox1.Text = ""; 
    textBox1.Focus(); 
} 

此事件就像我想它,但這裏是我的問題讀取textbox1.text忽略字符比如當我該怎麼辦C或A,因爲該keydown需要c將其與我的十進制轉換弄亂任何建議

+0

可能重複[如何使一個文本框只接受數字和格式,數字之間用逗號?](http://stackoverflow.com/questions/15163564/how-to-make-一,文本框,接受只位數,和格式號碼與 - 逗號) – 2013-04-20 21:45:43

+0

無不是重複即時試圖找出如何在文本框中 – quatre432 2013-04-20 21:53:00

+0

忽略字符複製您的意見,並將其粘貼在文本框中。現在你有兩個問題。 – 2013-04-21 03:39:05

回答

1

添加e.SuppressKeyPress = true; e.Handled = true;到您的處理時要防止按鍵從前進。

另外,您的if語句相當於if (e.KeyCode == Keys.Return),因爲它永遠不會等於CEnter

+0

我現在看到我的計劃行不通感謝您關注輸入 – quatre432 2013-04-20 21:59:44

1

前陣子我寫了關於限制對用戶輸入文本框進,這是可以在這裏(Restricting allowed characters in TextBox),但有一兩件事,我才意識到,它沒有處理短職位是用戶粘貼包含這些字符轉換成文本框的文本以下內容可能對您有用(Stopping someone from pasting into a TextBox)。這兩篇文章都是用VB.NET編寫的,但代碼很簡單,您不應該將代碼移到C#上。

希望這有助於:)

+0

第一個鏈接的「限制文本框中允許的字符」是行不通的。在這裏包含代碼片段會很有幫助。 – Brett 2015-10-28 10:26:45