elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Vuelvo al ataque con los texboxes :) evitar repe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Vuelvo al ataque con los texboxes :) evitar repe  (Leído 9,396 veces)
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #10 en: 4 Diciembre 2013, 20:48 pm »

Yo creo que sigo mañana  :-( ya son muchas horas despierto me levanto a las 5 de la mañana a ver que hago con este vicio jejej a las 7 me marcho a currar de mecánico menos mal que ahora son 8 horas de continuo (hasta el mes pasado  10 horas  al dia y por supuesto con  bajada de sueldo) bueno estoy cansado gracias por todo ya mañana sera otra ves que " ATACO " jeje

Gracias

Luis


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #11 en: 5 Diciembre 2013, 19:08 pm »

Hola de nuevo :)

Bueno funciona salvo que el texbox5 que seria el primero en recibir resultados se queda en blanco probe a eliminarlo y el siquiente le pasa lo mismo ???


Luis


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #12 en: 5 Diciembre 2013, 19:53 pm »

En el método sumar, la variable TextBoxCount empieza a contar desde 1, 1 es el segundo elemento, por eso se salta el TextBox5.

Para corregirlo, borra esta linea del principio del bloque del For, y ponla al final del bloque:
Citar
Código
  1. TextBoxCount += 1

EDITO:
O bien otra manera de solucionarlo puedes modificar esto:
Citar
Código
  1. TextBoxCount = 0 ' Reseteo el valor a cero
Por esto otro:
Código
  1. TextBoxCount = -1 ' Reseteo el valor a -1
Pero eso resulta algo confuso, mejor coloca la linea que te dije donde debe ir colocada.

saludos
« Última modificación: 5 Diciembre 2013, 19:58 pm por EleKtro H@cker » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #13 en: 6 Diciembre 2013, 06:58 am »

En el método sumar, la variable TextBoxCount empieza a contar desde 1, 1 es el segundo elemento, por eso se salta el TextBox5.

Para corregirlo, borra esta linea del principio del bloque del For, y ponla al final del bloque:
EDITO:
O bien otra manera de solucionarlo puedes modificar esto:Por esto otro:
Código
  1. TextBoxCount = -1 ' Reseteo el valor a -1
Pero eso resulta algo confuso, mejor coloca la linea que te dije donde debe ir colocada.

saludos



Sigo en lo mismo :)

Código
  1. Public Class Form1
  2.  
  3.    Dim maximum As Short = 99
  4.    Dim x As Integer = 0
  5.    Dim Número As Double
  6.    Private TextBoxes As TextBox() = {Nothing}
  7.    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32(), Result4 As Int32()
  8.    Private _textBox As Object
  9.  
  10.    Private Property Calcular As Object
  11.  
  12.    Private Property TextBox(ByVal TextBoxCount As Short) As Object
  13.        Get
  14.            Return _textBox
  15.        End Get
  16.        Set(ByVal value As Object)
  17.            _textBox = value
  18.        End Set
  19.    End Property
  20.  
  21.    Public Sub solonumeros(ByRef e As System.Windows.Forms.KeyPressEventArgs)
  22.        ' evitar letras
  23.        If Char.IsDigit(e.KeyChar) Then
  24.            e.Handled = False
  25.        ElseIf Char.IsControl(e.KeyChar) Then
  26.            e.Handled = False
  27.        ElseIf Char.IsSeparator(e.KeyChar) Then
  28.            e.Handled = False
  29.        Else
  30.            e.Handled = True
  31.        End If
  32.  
  33.    End Sub
  34.  
  35.  
  36.    ReadOnly Property Num1 As Int32
  37.        Get
  38.            Return CInt(TextBox1.Text)
  39.        End Get
  40.    End Property
  41.  
  42.    ReadOnly Property Num2 As Int32
  43.        Get
  44.            Return CInt(TextBox2.Text)
  45.        End Get
  46.    End Property
  47.    ReadOnly Property Num3 As Int32
  48.        Get
  49.            Return CInt(TextBox3.Text)
  50.        End Get
  51.    End Property
  52.    ReadOnly Property Num4 As Int32
  53.        Get
  54.            Return CInt(TextBox4.Text)
  55.        End Get
  56.    End Property
  57.  
  58.    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
  59.  
  60.  
  61.  
  62.        Dim TextBoxCount As Short = -1
  63.  
  64.        TextBoxes = {TextBox6, TextBox7, TextBox8, TextBox9, TextBox10, TextBox11, TextBox12, TextBox13, TextBox14, TextBox15, TextBox16, TextBox17, TextBox18, TextBox19, TextBox20, TextBox21, TextBox22, TextBox23, TextBox24}
  65.  
  66.        Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _
  67.                  .Distinct().ToArray ' Elimino duplicados
  68.  
  69.        Result2 = {Num2 + 10, Num2 + 20, Num2 + 30} _
  70.                  .Distinct().ToArray ' Elimino duplicados
  71.  
  72.        Result3 = {Num3 + 10, Num3 + 20, Num3 + 30} _
  73.                  .Distinct().ToArray ' Elimino duplicados
  74.  
  75.        Result4 = {Num4 + 10, Num4 + 20, Num4 + 30} _
  76.                  .Distinct().ToArray ' Elimino duplicados
  77.  
  78.  
  79.  
  80.        Array.Sort(Result1) : Array.Sort(Result2) : Array.Sort(Result3)
  81.        Array.Sort(Result4)   ' Ordeno los Items
  82.  
  83.        TextBoxCount = -1 ' Reseteo el valor a cero <------cambie como dijiste y nada
  84.  
  85.        Dim Results As IEnumerable(Of Integer) =
  86.            Result1.Concat(Result2).Concat(Result3).Concat(Result4) ' concateno arrays
  87.  
  88.        If Results.Count > TextBoxes.Count Then
  89.            Throw New Exception("La cantidad de números es mayor que la cantidad de Textboxes")
  90.        End If
  91.  
  92.        For X As Integer = 0 To Results.Count - 1
  93.  
  94.            'TextBoxCount += 1 '  <------cambie  y nada tambien lo cambie de sitio
  95.  
  96.            TextBoxCount += 0 '  <------cambie  y nada
  97.  
  98.            Select Case Results.Where(Function(n) n = Results(X)).Skip(1).Any
  99.  
  100.                Case False ' El número no está repetido en ninguna "linea"
  101.                    ' Así que colocamos el número en el Textbox
  102.                    Try
  103.                        TextBoxes(TextBoxCount).Text = CStr(Results(X))
  104.                    Catch ex As Exception
  105.                        Throw New Exception(ex.Message & ex.StackTrace)
  106.                    End Try
  107.  
  108.                Case True ' El número está repetido en alguna de las "lineas"
  109.                    ' Así que escribimos el número "máximo" en el textbox
  110.                    TextBoxes(TextBoxCount).Text = -CStr(maximum)
  111.  
  112.            End Select
  113.  
  114.  
  115.        Next X
  116.  
  117.    End Sub
  118.  
  119.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  120.  
  121.    End Sub
  122. End Class

Luis



« Última modificación: 6 Diciembre 2013, 14:09 pm por EleKtro H@cker » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #14 en: 6 Diciembre 2013, 14:17 pm »

Citar
Código
  1. Dim TextBoxCount As Short = -1
  2. TextBoxCount = -1
  3. 'TextBoxCount += 1
  4. TextBoxCount += 0
  5. TextBoxes = {TextBox6, ...}

Todo eso me sacó de quizio.

No es necesario darle tantas vueltas,
Inicializa la variable con valor 0, y le sumas un valor de 1 al final del bloque del For, no al principio, así el primer elemento procesado será Textboxes(0), es decir, el Textbox5, o mejor dicho, el TextBox6, porque el Textbox5 lo has quitado del Array.

Código:
sub sumar

    TextBoxes = {TextBox5, TextBox6, ...}
    TextBoxCount = 0

    For X...

        select case...
        end select

        ' última orden:
        TextBoxCount +=1

    Next X

end sub

Saludos
« Última modificación: 6 Diciembre 2013, 14:25 pm por EleKtro H@cker » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Vuelvo al ataque con los texboxes :) evitar repe
« Respuesta #15 en: 6 Diciembre 2013, 19:21 pm »


Todo eso me sacó de quizio.
jejjejje

Ya esta funcionando gracias Elektro pero no creas te dejare tranquilo seguro algo se me ocurrira :)

Luis

« Última modificación: 6 Diciembre 2013, 20:18 pm por EleKtro H@cker » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines