2014-04-03 202 views
1

我正在寫使用C#。我使用下面的代碼到我的文本轉換爲數字文本框在Win形式的桌面應用程序:避免重複的代碼在C#

private void txtPrice_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     //if (!char.IsControl(e.KeyChar) 
     // && !char.IsDigit(e.KeyChar) 
     // && e.KeyChar != '.') 
     //   { 
     //   e.Handled = true; 
     //   } 
     if(!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar)) 
     { 
      e.Handled = true; 
     }    
    } 

是螞蟻設計模式或技術來存儲上面的代碼只有一次,並且不寫它,每次在窗體中的每個文本框?

+2

如果您在一個表單上,只需將多個TextBox控件上的KeyPress事件設置爲txtPrice_KeyPress。 – FodderZone

回答

1

創建一個名爲數字文本框新組件,它繼承TextBoxBase類。

您在此處編寫的代碼不起作用,因爲有人可以複製和粘貼文本值。

您必須重寫text_change事件。

1

如果你想定製,羅伯特的答案是最好的方法。另外,如果你沒有意識到這一點,你可以使用它內置的NumericUpDown control

1

創建一個方法....例如

private void press(object sender, KeyPressEventArgs e) 
    { 
     //what ever code here,,,,,,i dont care 

    } 

//我假設你正在使用視覺studio.net

//亮點或選擇文本框或文本框....

//然後去屬性窗口,,,,,

//之後CLIC鉀對閃電圖標....或事件圖標

//然後去你的KeyPress事件-------並單擊下拉按鈕//之後

添加需要的方法由控件實現......