Ver Mensaje Individual
  #1  
Antiguo 29-12-2009
Tauro78 Tauro78 is offline
Miembro
 
Registrado: sep 2006
Posts: 88
Reputación: 18
Tauro78 Va por buen camino
Como reutilizar el codigo

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.


Código Delphi [-]
public interface IChequearTipo
{
   void NroEnteroKeyPress(Object sender, KeyPressEventArgs e);
   void NroEnteroKeyDown(Object sender, KeyEventArgs e);
}

Código Delphi [-]
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:

Código Delphi [-]
private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
  {
      ChequearTipo ctkp = new ChequearTipo();
      IChequearTipo ICheqT = ctkp;
      ctkp.NroEnteroKeyPress(sender, e);
  }
Responder Con Cita