Hola, quisiera saber como puedo hacer para reutilizar codigo. Por ejemplo tengo definidos distintos formularios los cuales tienen controles de tipo textBox, comboBox, etc. Entonces en algunos controles solo se deben ingresar numeros, en otros solo letras. Lo que trate de hacer y no me funciono fue lo siguiente: hice una clase ChequearTipo, una interface IChequearTipo y lo quise implementar en una forma frmCuentasAltas por medio los eventos KeyDown y KeyPress.
Debo aclarar que este codigo me tira el error: [C# Error] CuentasAltas.cs(271): 'Bancos_CSharp.ChequearTipo' does not contain a definition for 'NroEnteroKeyPress'
Esto debe ser porque frmCuentasAltas no conoce la definicion del metodo NroEnteroKeyPress que se encuentra definido en la clase ChequearTipo, es por esto que tengo la confusion.
Me gustaria saber si esta bien la manera de resolver el problema o tendria que probar de otra menera tal vez sin usar una interfase, desde ya muchas gracias.
public interface IChequearTipo
{
void NroEnteroKeyPress(Object sender, KeyPressEventArgs e);
void NroEnteroKeyDown(Object sender, KeyEventArgs e);
}
public class ChequearTipo : IChequearTipo
{
public ChequearTipo()
{
//
// TODO: Add constructor logic here
//
}
private bool noEsNumero = false;
void IChequearTipo.NroEnteroKeyPress(Object sender, KeyPressEventArgs e)
{
if (noEsNumero == true)
{
e.Handled = true;
}
}
void IChequearTipo.NroEnteroKeyDown(Object sender, KeyEventArgs e)
{
noEsNumero = false;
if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9)
{
if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9)
{
if (e.KeyCode != Keys.Back)
{
noEsNumero = true;
}
}
}
}
en la forma frmCuentasAltas, lo llamo asi:
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
ChequearTipo ctkp = new ChequearTipo();
IChequearTipo ICheqT = ctkp;
ctkp.NroEnteroKeyPress(sender, e);
}