none
donde esta el numero en el textbox RRS feed

  • Pregunta

  • hola como estan tengo una dos lista de textbox  del textbox1 hasta el textbox8 en una fila y la otra del textbox10 hasta el textbox 17 en el cual ingreso diferentes numero pero en el textbox9 ingreso otro numero lo que quiero es que el numero que ingreso en el textbox9 me localice en que textbox esta

    por ejemplo

    textbox1=7         textbox10=8

    textbox2=9         textbox11=15

    textbox3=21       textbox12=32

    textbox4=33        textbox13=38 .........

    si en el textbox9 ingreso el numero 12 se me pinte el textbox2 y textbox11 porque el 12 esta entre el 9 y el 15

    ayuda porfavor lo necesito se que cuento con ustedes

    viernes, 23 de junio de 2017 3:34

Respuestas

  • Anthoni, si tu copiaste y pegaste el código del Sr. Morales tal cual y no te funciona, tienes dos problemas; primero el programa no te funcionara jamas...  puesto que ninguna instruccióno en VB termina en un punto (.), se entiende? o sea que la instrucción de la cuarta línes termina en la quita y la instrucción de la sexta línea termina el la setptima...todo junto. El segundo problema es que debes entender el código, porque tu profesór de infomática te preguntará: Alumno Anthony, hizo la tarea? si si diras tu, y cuando lo vea te dira ; Que bien .. pero para que sirve Me.Controls.OfTipe? y esa función t que es? y el OrderBy?, y a menos que de lleves a Willams Morales con tigo para que él le explique, no sabras que responder. Y cuando termines de aprenderte todo y le contestes a tu profe con toda soltura para que es cada cosa, el  dira Y su porgrama funciana alumno Anthony? tú dirás por supuesto y le muestraras .. y el con cara de (en tu cara!) colocara una (a) en el textbox9 y tu programa volara por los aires...Se entiende? ya tienes la respuesta ahora a aprender

    Saludos (un poco de humor)

    domingo, 25 de junio de 2017 3:07
  • Es un ejercicio sencillo de antecesores y sucesores, por ejemplo:

    Dim Numero = CInt(TextBox9.Text)
    
    Dim TxtA = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).
    				OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
    Dim TxtS = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).
    				OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()
    
    If TxtA IsNot Nothing Then TxtA.BackColor = Color.Green
    If TxtS IsNot Nothing Then TxtS.BackColor = Color.Green


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 23 de junio de 2017 4:46
  • El código que pegaste está perfecto, revisa lo que te digo de los textbox  o sea que el  último que arrastraste a tu diseño sea el que ejecuta el código
    • Marcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:07
    martes, 27 de junio de 2017 4:25
  • Bien, arrastra un GrupBox a tu form, alli seleccionas todos los box (en orden) y en el codigo solo reemplaza:

     Dim TxtA = Me.GroupBox1.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
                Dim TxtS = Me.GroupBox1.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()

    Observando siempre la misma funcionalidad, que el ultimo en generarse es el que recibe el código


    • Marcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:07
    • Editado Marcelo PF martes, 27 de junio de 2017 13:12
    martes, 27 de junio de 2017 4:45

Todas las respuestas

  • Es un ejercicio sencillo de antecesores y sucesores, por ejemplo:

    Dim Numero = CInt(TextBox9.Text)
    
    Dim TxtA = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).
    				OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
    Dim TxtS = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).
    				OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()
    
    If TxtA IsNot Nothing Then TxtA.BackColor = Color.Green
    If TxtS IsNot Nothing Then TxtS.BackColor = Color.Green


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 23 de junio de 2017 4:46
  • me da un error dice   la instruccion no puede aparecer fuera del cuerpo de un metodo  o una expresion lambda de varias lineas
    viernes, 23 de junio de 2017 22:03
  • es el mismo codigo que usted me dio

    Dim Numero = CInt(TextBox9.Text)

        Dim TxtA = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).
            OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
        Dim TxtS = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).
            OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()

         If TxtA IsNot Nothing Then TxtA.BackColor = Color.Green
         If TxtS IsNot Nothing Then TxtS.BackColor = Color.Green

    viernes, 23 de junio de 2017 22:36
  • no funciona no sale nada al ejecutar el formulario e ingresar un numero en el textbox
    viernes, 23 de junio de 2017 23:43
  • Amigo funciona perfecto

    Propondría colocoar en el ingreso de código todos los TextBox a BackColor= SystemColor.Windows y "SoloNumeros" a el text 9

    sábado, 24 de junio de 2017 3:13
  • tampoco me podria mandar la aplicacion hecho en visual porfavor mi correo es

    para ver como esta hecha y ver en que e fallado 

    anthonycalderoon02@gmail.com

    sábado, 24 de junio de 2017 13:36
  • Anthoni, si tu copiaste y pegaste el código del Sr. Morales tal cual y no te funciona, tienes dos problemas; primero el programa no te funcionara jamas...  puesto que ninguna instruccióno en VB termina en un punto (.), se entiende? o sea que la instrucción de la cuarta línes termina en la quita y la instrucción de la sexta línea termina el la setptima...todo junto. El segundo problema es que debes entender el código, porque tu profesór de infomática te preguntará: Alumno Anthony, hizo la tarea? si si diras tu, y cuando lo vea te dira ; Que bien .. pero para que sirve Me.Controls.OfTipe? y esa función t que es? y el OrderBy?, y a menos que de lleves a Willams Morales con tigo para que él le explique, no sabras que responder. Y cuando termines de aprenderte todo y le contestes a tu profe con toda soltura para que es cada cosa, el  dira Y su porgrama funciana alumno Anthony? tú dirás por supuesto y le muestraras .. y el con cara de (en tu cara!) colocara una (a) en el textbox9 y tu programa volara por los aires...Se entiende? ya tienes la respuesta ahora a aprender

    Saludos (un poco de humor)

    domingo, 25 de junio de 2017 3:07
  •  En lo posible colocar la respuesta al Sr. Williams Morales que es quién resolvó la consulta, en lo que me corresponde solo fue colaboración, gracias!
    lunes, 26 de junio de 2017 13:45
  • entonces usted me puede ayudar no use copiar y pegar sino que me da errores utilizando cualquier metodo

    solo necesito eso para terminar mi aplicacion esa parte no comprendo

    lunes, 26 de junio de 2017 20:00
  • Claro que te podemos ayudar, coloca el código con el error donde te lo marca y lo vamos viendo, para eso estamos.
    lunes, 26 de junio de 2017 20:02
  • Private Sub TextBox86_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox86.KeyDown
            If e.KeyCode = Keys.Enter Then
                Dim textbox = DirectCast(sender, TextBox)
                Dim Numero = CInt(textbox.Text)

                Dim TxtA = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero)(OrderBy(Function(t) CInt(t.Text)).LastOrDefault())
                Dim TxtS = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero)(OrderBy(Function(t) CInt(t.Text)).FirstOrDefault())

                If TxtA IsNot Nothing Then TxtA.BackColor = Color.Green
                If TxtS IsNot Nothing Then TxtS.BackColor = Color.Green
            End If
        End Sub

    en orderby me sale que no esta declarado

    esto no es un deber que ma mandaron sino quiero ver si esto se puede hacer soy principiante no tengo todos los conocimientos para resolverlos yo mismo

    poreso acudo ante ustedes

    lunes, 26 de junio de 2017 20:18
  • Ves? lee lo que te digo en el post anterior .... donde termina la línea ...(t.Text) < numero).(OrederBy(Fun....

    Eso es en una misma línea fijaté que en el post original tiene un punto en ....(t.Text) > Numero).

    en ambos casos es todo en una misma línea



    • Editado Marcelo PF lunes, 26 de junio de 2017 22:17
    lunes, 26 de junio de 2017 20:35
  • mire ya ise lo que me dijo

        Private Sub TextBox86_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox86.KeyDown
            TextBox1.BackColor = SystemColors.Window
            TextBox2.BackColor = SystemColors.Window
            TextBox12.BackColor = SystemColors.Window
            TextBox11.BackColor = SystemColors.Window
            TextBox16.BackColor = SystemColors.Window
            TextBox15.BackColor = SystemColors.Window
            TextBox14.BackColor = SystemColors.Window
            TextBox13.BackColor = SystemColors.Window
            TextBox18.BackColor = SystemColors.Window
            TextBox17.BackColor = SystemColors.Window

            If e.KeyCode = Keys.Enter Then
                Dim textbox = DirectCast(sender, TextBox)
                Dim Numero = CInt(textbox.Text)

                Dim TxtA = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
                Dim TxtS = Me.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()

                If TxtA IsNot Nothing Then TxtA.BackColor = Color.Green
                If TxtS IsNot Nothing Then TxtS.BackColor = Color.Green
            End If
        End Sub

    y tampoco me sale

    martes, 27 de junio de 2017 3:52
  • nose en que parte estoy fallando
    martes, 27 de junio de 2017 3:53
  • Bueno pero donde te da el error ahora

    martes, 27 de junio de 2017 4:05
  • en que me ejecuta normalmente pero al momento de poner en el textbox el numero que me busque no se pinta de color
    martes, 27 de junio de 2017 4:07
  • revisele el codigo
    martes, 27 de junio de 2017 4:07
  • Ok pero no presenta fallas, verdad? Bueno si analizas el código lo que te indica con Dim textbox = DirectCast(sender, TextBox) es que apunta al ultimo TextBox cargado o sea que tu TextBox86 debe ser el último que cargas en tu form se entiende?

    martes, 27 de junio de 2017 4:12
  • El código que pegaste está perfecto, revisa lo que te digo de los textbox  o sea que el  último que arrastraste a tu diseño sea el que ejecuta el código
    • Marcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:07
    martes, 27 de junio de 2017 4:25
  • como lo haria para que no se cargen todos solo los que yo quiero  porque tengo otros textbox que en cada uno de ellos realizan diferente funcion
    martes, 27 de junio de 2017 4:32
  • Bien, arrastra un GrupBox a tu form, alli seleccionas todos los box (en orden) y en el codigo solo reemplaza:

     Dim TxtA = Me.GroupBox1.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) < Numero).OrderBy(Function(t) CInt(t.Text)).LastOrDefault()
                Dim TxtS = Me.GroupBox1.Controls.OfType(Of TextBox).Where(Function(t) CInt(t.Text) > Numero).OrderBy(Function(t) CInt(t.Text)).FirstOrDefault()

    Observando siempre la misma funcionalidad, que el ultimo en generarse es el que recibe el código


    • Marcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:07
    • Editado Marcelo PF martes, 27 de junio de 2017 13:12
    martes, 27 de junio de 2017 4:45
  • ya lo hice ese text box es el ultimo haora el problema que me da es en esta linea

    (Function(t) CInt(t.Text) < Numero)

    dise no se controlo invalidCastException

    martes, 27 de junio de 2017 4:47
  • No debería dar error

    Revisa el código as tocado algo

    martes, 27 de junio de 2017 4:53
  • Bien vendio a la programación, te esperan muchos dolores de cabeza con este en el futuro, ja consejo borra todos los text involucrados en esta función y comienza de nuevo agregandolos al GruupBox1
    martes, 27 de junio de 2017 4:59
  • no ya me sale al llenarlos todos y darle el enter se me pinta pero la cuestion es que tengo que llenarlos todos para que me busque como podria hacer para sisque lleno cuatro textbox me busque en esos o si lleno seis me busque en esos o en los que tenga llenos

    de antemano muchas gracias por tenerme pasienciaporque el verdadero programador es el que enseña no el que quiere solo para el

    • Marcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:06
    • Desmarcado como respuesta anthony lenyn martes, 27 de junio de 2017 5:06
    martes, 27 de junio de 2017 5:06
  • Abria que rever el código, si no colocar 0, por el momento me despido que debo dormir algo en todo caso lueogo lo vemos, puedes ir pensando en un if..then para el caso de que algún text este nullo

    Nos vemos Anthony 


    martes, 27 de junio de 2017 5:20
  • Bien ya tienes todo, ahora, tarea para el alumno Anthony, basado en lo que has aprendido, tu colocas para repintar los TextBox lo siguiente

      TextBox1.BackColor = SystemColors.Window
            TextBox2.BackColor = SystemColors.Window
            TextBox12.BackColor = SystemColors.Window
            TextBox11.BackColor = SystemColors.Window
            TextBox16.BackColor = SystemColors.Window
            TextBox15.BackColor = SystemColors.Window
            TextBox14.BackColor = SystemColors.Window
            TextBox13.BackColor = SystemColors.Window
            TextBox18.BackColor = SystemColors.Window
            TextBox17.BackColor = SystemColors.Window

    Que pasaría si fueran 1000 textbox? sería nesesario repetir todo este código hasta 1000? Tu tarea es reducir el código para esta función tomando en cuenta que los Controls TextBox están almacenados en el GroupBox1 y deberas recorrer todos ellos y reasignarle de nuevo el color de origen

    Saludos


    • Editado Marcelo PF martes, 27 de junio de 2017 14:32
    martes, 27 de junio de 2017 14:31
  • amigo y si ya se me pinta un textbox y quiero que se me pinten todos los textbox que estan en frente

    por ejemplo tengo

                  groupbox1                                    groupbox2                         groupbox3                        groupbox4

    textbox1=5              textbox4= 10               textbox7                           textbox10                      textbox13 

    textbox2=11            textbox5= 15               textbox8                           textbox11                      textbox14  

    textbox3=16            textbox6= 20               textbox9                            textbox12                     textbox15  

                                                                             textbox16

    y con el codigo que tengo si escribo en el textbox16 se me pintan los textbox que contienen ese numero en el groupbox1 y lo que me puedes ayudar es como hago si en el textbox16 pongo 25 se pinta el textbox3 y textbox6 pero tambien quiero que se me pinten los textbox que estan en frente como son los textbox9,textbox12,textbox15

    o si me aparecen en los textbox1 y 4 se me pinten los textbox que estan en frente asi que suceda en cualquier textbox del groupbox1

    ayude 

    miércoles, 28 de junio de 2017 22:59
  • alguien quien ayude
    sábado, 1 de julio de 2017 0:03