[英]UserControl Validation in c#
In my UserControl i have a TextBox Which is not inheriting from TextBox, i am doing a 在我的UserControl中,我有一个TextBox,它不是继承自TextBox,我正在做一个
validation for Numerics (which allows only Digits) 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");
}
}
}
in Form i write the following code 在表单中我写下面的代码
public Form1()
{
txtLocl.onerror += new ciscontrols.mtbDtTmPk.usercontrolError(mtbDtTmPk1_onerror);
}
void mtbDtTmPk1_onerror(string message)
{
epfrm2.SetError(mtbDtTmPk1, message);
//throw new NotImplementedException();
}
i write the code in Form. 我在表单中编写代码。 now i don't want to write any code in Form.
现在我不想在Form中编写任何代码。 But errorProvider is in Form1 only.
但errorProvider仅在Form1中。 How can i do Know.
我怎么知道。 User cann't write any code in Form1.But Form ErrorProvider will work.
用户无法在Form1中编写任何代码。但是Form ErrorProvider可以正常工作。
You can fire a event: 你可以发射一个事件:
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");
}
}
}
And in your form: 并以您的形式:
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.