Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: luis456 en 19 Octubre 2013, 13:45 pm



Título: " no se controlo nulreferenceExection " ??????
Publicado por: luis456 en 19 Octubre 2013, 13:45 pm
Hola vuelvo al ataque :)

Estoy tratando que los texbox que reciben los resultados de unas ecuaciones matematicas no permitan mostrar numeros que no esten dentro de determinado rango y probando con este pedazo de codigo me salta este error  " no se controlo nulreferenceExection "


Tambien me gustaria saber como no dejar el texbox vacio  mostrando el ultimo numero dentro del rango establecido :)


Código:
  Private Sub TextBox7_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox7.TextChanged
        If Val(Me.texbox7.tex) < o Or Val(Me.texbox7.tex) > 20 Then
        End If
    End Sub 

Luis







Título: Re: " no se controlo nulreferenceExection " ??????
Publicado por: Eleкtro en 19 Octubre 2013, 15:31 pm
La excepción segúramente es porque estás usando una "O" de Oviedo en lugar de un Cero  :¬¬

PD: (ya estamos de nuevo usando los wrappers de las funciones de vb... (VAL) ¿no hay manera de cambiar eso he? xD)





Código
  1. dim MIN as integer = 0
  2. dim MAX as integer = 100
  3.  
  4. Private Sub TextBox7_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
  5. Handles TextBox7.TextChanged
  6.  
  7.  select case cint(sender.text)
  8.  
  9.    case not MIN to MAX:sender.text = cstr(MAX)
  10.  
  11.  end Select
  12.  
  13. End Sub  

el código lo he escrito al vuelo, si el número no está en el rango MIN-MAX entonces se escribe el valor MAX en el textbox, creo que es lo que querías hacer

fíjate lo facil que era

un saludo!


Título: Re: " no se controlo nulreferenceExection " ??????
Publicado por: luis456 en 19 Octubre 2013, 16:56 pm
La excepción segúramente es porque estás usando una "O" de Oviedo en lugar de un Cero  :¬¬

PD: (ya estamos de nuevo usando los wrappers de las funciones de vb... (VAL) ¿no hay manera de cambiar eso he? xD)





Código
  1. dim MIN as integer = 0
  2. dim MAX as integer = 100
  3.  
  4. Private Sub TextBox7_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) _
  5. Handles TextBox7.TextChanged
  6.  
  7.  select case cint(sender.text)
  8.  
  9.    case not MIN to MAX:sender.text = cstr(MAX)
  10.  
  11.  end Select
  12.  
  13. End Sub  

el código lo he escrito al vuelo, si el número no está en el rango MIN-MAX entonces se escribe el valor MAX en el textbox, creo que es lo que querías hacer

fíjate lo facil que era

un saludo!

Gracias por tu ayuda :)

lo recien acabo de probar y solo me pone el el texbox el numero maximo jejej haciendo varios calculos para probar pero siempre me pone el mismo numero el codigo que estoy haciendo para las pruebas es el que me diste el otro dia

Código:
Public Class Form1
 
    Private TextBoxes As TextBox() = {Nothing}
 
    Private Result1 As Int32(), Result2 As Int32()
 
    ReadOnly Property Num1 As Int32
        Get
            Return CInt(TextBox1.Text)
        End Get
    End Property
 
    ReadOnly Property Num2 As Int32
        Get
            Return CInt(TextBox2.Text)
        End Get
    End Property
 
    Private Sub Sumar(sender As Object, e As EventArgs) _
    Handles Button_Sum.Click
 
        Dim TextBoxCount As Short = -1
 
        TextBoxes = {TextBox3, TextBox4, TextBox5, TextBox6}
 
        Result1 = {Num1 + 15, Num1 + 25} _
                  .Distinct().ToArray ' Elimino duplicados
 
        Result2 = {Num2 + 30, Num2 + 20} _
                  .Distinct().ToArray ' Elimino duplicados
 
        Array.Sort(Result1) : Array.Sort(Result2) ' Ordeno los Items
 
        For Each Number As Int32 In Result1
            TextBoxCount += 1
            TextBoxes(TextBoxCount).Text = Number
        Next
 
        For Each Number As Int32 In Result2
            TextBoxCount += 1
            TextBoxes(TextBoxCount).Text = Number
        Next
 
   


Luis