Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 01munrra en 26 Octubre 2015, 03:24 am



Título: Parametros a funcion de Button_click()(SOLUCIONADO)
Publicado por: 01munrra en 26 Octubre 2015, 03:24 am
si quiero mostrar un dato al dar clic en un botton, como lo haria?

el funcionamiento es el siguiente, cada vez que le de clic a el mismo boton el cambie la informacion que se muestra alli dentro del boton, crei que si pasaba por parametro el dato a la funcion me funcionaria, pero no funciono, hice esto ps:

Código
  1. Private Sub button_resp1_Click(sender As Object, e As EventArgs, byref res as string) Handles button_resp1.Click
  2. button_resp1.tex = res
  3. end sub
  4.  

pero me arroja un error:
Código
  1. Error 1 El método 'Private Sub button_resp1_Click(sender As Object, e As System.EventArgs, ByRef res As String)' no puede controlar el evento 'Public Event Click(sender As Object, e As System.EventArgs)' porque no tienen una firma compatible.
  2.  
  3.  

que me recomiendadn?

gracias!


Título: Re: Parametros a funcion de Button_click()
Publicado por: Lekim en 27 Octubre 2015, 14:31 pm
Hola
Si pones tex, lógico que te de error porque es text. :xD

Bueno, fuera bromas  :¬¬

Ya te lo está diciendo: porque no tienen una firma compatible


No se muy bien lo que quieres hacer, haber si esto te sirve como solución:

Código
  1. Option Strict On
  2. Option Explicit On
  3. Public Class Form1
  4.  
  5.    Public Sub EventClickRef(ByRef Res As Integer)
  6.        Dim nRandom As New Random
  7.        Res = nRandom.Next(5 * Res) 'Multiplica el valor devuelto por 5 y lo mete en Res
  8.    End Sub
  9.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  10.        Dim Res As Integer = 2
  11.        EventClickRef(Res) 'Envia el valor actual de Res (2) a EventClick y devuelve otro valor
  12.        Button1.Text = CStr(Res)
  13.    End Sub
  14.  
  15.    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  16.  
  17.    End Sub
  18. End Class





Título: Re: Parametros a funcion de Button_click()
Publicado por: 01munrra en 28 Octubre 2015, 03:30 am
Si pones tex, lógico que te de error porque es text. :xD
jajaja  ::)

fijate lo que quiero hacer, tengo una serie de respuestas; ejemplo:
Código
  1. vector(0) = "amarrillo"
  2. vector(1) = "rojo"
  3. vector(3) = "naranja"
  4. vector(4) = "negro"
  5.  

entonces en un boton(botton_siguiente).
por otro lado tengo 2 botones mas(botton_resp1 y botton_resp2), tengo estos botones para cuando le den clic sobre cada botton(botton_resp1 y botton_resp2) salga:
Código
  1. botton_resp1 ="amarrillo"
  2. botton_resp2 = "rojo"
  3.  

y cuando presione el boton_siguinte salga=
Código
  1. botton_resp1 ="naranja"
  2. botton_resp2 = "negro"
  3.  

como puedo hacer eso?....

me tiene loco por que no he podido.... :o


Título: Re: Parametros a funcion de Button_click()
Publicado por: Lekim en 28 Octubre 2015, 17:24 pm
(http://4.bp.blogspot.com/-YUORC5YyyPQ/VjD_4IUu-AI/AAAAAAAAASo/rsASMO386po/s1600/Conmutador.gif)

Código
  1. Public Class Form1
  2.    Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
  3.    Dim Conmutador As Boolean
  4.    Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
  5.        Conmutador = IIf(Conmutador = False, True, False)
  6.        Select Case Conmutador
  7.            Case False
  8.                Me.botton_resp1.Text = Vector(1)
  9.                Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
  10.                Me.botton_resp2.Text = Vector(2)
  11.                Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
  12.            Case True
  13.                Me.botton_resp1.Text = Vector(3)
  14.                Me.botton_resp1.BackColor = Color.Orange : Me.botton_resp1.ForeColor = Color.Black
  15.                Me.botton_resp2.Text = Vector(4)
  16.                Me.botton_resp2.BackColor = Color.Black : Me.botton_resp2.ForeColor = Color.White
  17.        End Select
  18.        Me.Text = Conmutador
  19.    End Sub
  20.  
  21.    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  22.        Me.botton_resp1.Text = Vector(1)
  23.        Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
  24.        Me.botton_resp2.Text = Vector(2)
  25.        Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
  26.    End Sub
  27. End Class


TAMBIÉN SE PUEDE ESCRIBIR ASÍ:
Código
  1. Public Class Form1
  2.    Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
  3.    Dim Conmutador As Boolean
  4.    Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
  5.        Conmutador = IIf(Conmutador = False, True, False)
  6.        Select Case Conmutador
  7.            Case False
  8.                With botton_resp1
  9.                    .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
  10.                End With
  11.                With botton_resp2
  12.                    .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
  13.                End With
  14.            Case True
  15.                With botton_resp1
  16.                    .Text = Vector(3) : .BackColor = Color.Orange : .ForeColor = Color.Black
  17.                End With
  18.                With botton_resp2
  19.                    .Text = Vector(4) : .BackColor = Color.Black : .ForeColor = Color.White
  20.                End With
  21.        End Select
  22.        Me.Text = Conmutador
  23.    End Sub
  24.  
  25.    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
  26.        With botton_resp1
  27.            .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
  28.        End With
  29.        With botton_resp2
  30.            .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
  31.        End With
  32.    End Sub
  33. End Class


Título: Re: Parametros a funcion de Button_click()
Publicado por: 01munrra en 29 Octubre 2015, 04:32 am
Oye....! Gracias me ha servido bastante...... ;-) ;-) ::)

algo asi fue lo que hice, claro esta es una prueba, pero lo hace.

Código
  1. Public Class Form1
  2.  
  3.    Dim vt(10) As String
  4.    Dim cont As Integer = 0
  5.  
  6.    Private Sub cargar(ByRef vt() As String)
  7.  
  8.        vt(0) = "algo"
  9.        vt(1) = "otro"
  10.        vt(2) = "otro algo"
  11.        vt(3) = "algo mas"
  12.        vt(4) = "mucho mas"
  13.        vt(5) = "otro mucho mas"
  14.        vt(6) = "muchas cosas mas"
  15.        vt(7) = "infinitas cosas"
  16.        vt(8) = "infinitas cosas mas"
  17.        vt(9) = "Fin de cosas"
  18.  
  19.  
  20.    End Sub
  21.  
  22.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  23.        cargar(vt)
  24.    End Sub
  25.  
  26.    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
  27.        Button1.Text = ""
  28.        Button2.Text = ""
  29.  
  30.        If cont = 9 Then
  31.            'generar Salir
  32.        Else
  33.            cont = cont + 2
  34.        End If
  35.  
  36.    End Sub
  37.  
  38.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  39.        Button1.Text = vt(cont)
  40.    End Sub
  41.  
  42.    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  43.        Button2.Text = vt(cont + 1)
  44.    End Sub
  45. End Class
  46.  


Título: Re: Parametros a funcion de Button_click()(SOLUCIONADO)
Publicado por: Eleкtro en 4 Noviembre 2015, 13:59 pm
me arroja un error:
Código
  1. Error 1 El método 'Private Sub button_resp1_Click(sender As Object, e As System.EventArgs, ByRef res As String)' no puede controlar el evento 'Public Event Click(sender As Object, e As System.EventArgs)' porque no tienen una firma compatible.
  2.  
  3.  

que me recomiendadn?

Lo que yo te recomiendo, una vez solucioando el problema, es que empieces a documentarte sobre lo que es un event-handler y un delegado en general, para comprender. No puedes pretender cambiar la firma de un handler para pasarle "X" parámetros como estabas intentando hacer, pues no son metodos cualquiera, son metodos destinados a controlar un evento, por ende, deben recibir unos parámetros específicos (declarados por el evento que sea).

  • EventHandler(Of EventArgs) ( EventHandler(TEventArgs) Delegate ) - MSDN (https://msdn.microsoft.com/en-us/library/db0etb8x%28v=vs.110%29.aspx)
  • Event Handlers - MSDN (http://msdn.microsoft.com/en-us/library/aa984105%28v=vs.71%29.aspx)[/i]

Saludos