I tried this code in my custom user control in a C# Windows application:
public partial class HtextBox : DevExpress.XtraEditors.TextEdit
{
protected override void OnTextChanged(KeyEventArgs kpe)
{
if (kpe.KeyCode == Keys.D1 ||
kpe.KeyCode == Keys.D2 ||
kpe.KeyCode == Keys.D3 ||
kpe.KeyCode == Keys.D4 ||
kpe.KeyCode == Keys.D5 ||
kpe.KeyCode == Keys.D6 ||
kpe.KeyCode == Keys.D7 ||
kpe.KeyCode == Keys.D8 ||
kpe.KeyCode == Keys.D9 ||
kpe.KeyCode == Keys.D0
) {
base.Text += kpe.KeyValue;
}
}
}
I got this error:
Error 1 ‘myproject.HtextBox.OnTextChanged(object, System.Windows.Forms.KeyEventArgs)’: no suitable method found to override E:\my project\myproject\HtextBox.cs
I want create a custom textbox. Here I want this textbox just to get numbers as input. What would an example be?
Even though
KeyEventArgsis a subclass ofSystem.EventArgs, C# does not let you override a method with a subclass parameter. You need to override the method with the signature from the base class, and then cast toKeyEventArgsinside your function:Edit:
Since
OnTextChangeddoes not provideKeyEventArgsand it looks like you need them, try overriding a different method: