none
visual c++ textbox solo numeros RRS feed

  • Pregunta

  • Hola gente, estoy trabajando con Visual Studio en Visual C++/CLR (o algo asi jeje), como adelanta el titulo estoy buscando como hacer que mi textbox solo acepte numeros pero no lo consigo, necesito ayuda, primero de como crear el evento KeyPress para el textbox y segundo, seria el uso del getchar, o esta funcion se usa solo para app de consola?, no hace falta que me den el codigo exacto solo quiero informacion ya que no encuentro, desde ya gracias.

    sábado, 6 de agosto de 2016 23:49

Todas las respuestas

  • Hola MAXI_1792

    Revisa el siguiente código

    private: System::Void tbPDX_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
    
        if(e->KeyChar == '.'){
            if( this->tbPDX->Text->Contains(".") && !this->tbPDX->SelectedText->Contains(".") )
                e->Handled = true;  
        }
        // Permite números negativos
        else if(e->KeyChar == '-' && !(this->tbPDX->Text->Contains("-"))){
            e->Handled = true;
            tbPDX->Text = "-" + tbPDX->Text;
        }
        // Acepta solo dígitos ".", "-" y retroceso
        else if(!Char::IsDigit(e->KeyChar)&& e->KeyChar != 0x08){
            e->Handled = true;
        }
    } 

    Configúralo según tus necesidades

    Si te ha servido no olvides votar y marcar como respuesta.


    Miguel Torres



    domingo, 7 de agosto de 2016 0:05
  • Gracias Miguel, sabes si ademas de eso tengo que crear el evento? en caso de ser asi como se haria?
    domingo, 7 de agosto de 2016 1:28
  • MAXI_1792

    El código de muestra anterior corresponde al evento KeyPress del cuadro de texto en este caso el botón se llama tbPDX (TextBox) puedes cambiarlo y ponerle el nombre que corresponda con el de su cuadro de texto (TextBox).

    private: System::Void tbPDX_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
    
        if(e->KeyChar == '.'){
            if( this->tbPDX->Text->Contains(".") && !this->tbPDX->SelectedText->Contains(".") )
                e->Handled = true;  
        }
        // Permite números negativos
        else if(e->KeyChar == '-' && !(this->tbPDX->Text->Contains("-"))){
            e->Handled = true;
            tbPDX->Text = "-" + tbPDX->Text;
        }
        // Acepta solo dígitos ".", "-" y retroceso
        else if(!Char::IsDigit(e->KeyChar)&& e->KeyChar != 0x08){
            e->Handled = true;
        }
    } 
    Saludos,


    Miguel Torres


    domingo, 7 de agosto de 2016 2:04