[英]UserControl Validation in c#
在我的UserControl中,我有一個TextBox,它不是繼承自TextBox,我正在做一個
Numerics驗證(僅允許數字)
public delegate void usercontrolError(string message);
public event usercontrolError onerror;
Private void txtLocl_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar != '\b')
{
if(!char.IsDigit(e.KeyChar))
{
e.Handled=true;
}
else
{
onerror.Invoke("Enter Digits Only");
}
}
}
在表單中我寫下面的代碼
public Form1()
{
txtLocl.onerror += new ciscontrols.mtbDtTmPk.usercontrolError(mtbDtTmPk1_onerror);
}
void mtbDtTmPk1_onerror(string message)
{
epfrm2.SetError(mtbDtTmPk1, message);
//throw new NotImplementedException();
}
我在表單中編寫代碼。 現在我不想在Form中編寫任何代碼。 但errorProvider僅在Form1中。 我怎么知道。 用戶無法在Form1中編寫任何代碼。但是Form ErrorProvider可以正常工作。
你可以發射一個事件:
public delegate void CustomTextBoxError(string message);
public event CustomTextBoxError onError;
private void txtLocl_KeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar != '\b')
{
if(char.IsDigit(e.KeyChar))
{
e.Handled=true;
}
else
{
if (onError != null)
onError.Invoke("Enter digits only");
}
}
}
並以您的形式:
private void MyForm_Load(object sender, EventArgs e)
{
myUserControl.onError += new CustomTextBoxError(MyForm_onError);
}
void MyForm_onError(string message)
{
//do anything you want in your form...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.