Test Foro de elhacker.net SMF 2.1

Programación => Programación General => .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 (vbnet) [Seleccionar]

Private Sub button_resp1_Click(sender As Object, e As EventArgs, byref res as string) Handles button_resp1.Click
button_resp1.tex = res
end sub


pero me arroja un error:
Código (vbnet) [Seleccionar]

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.



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 (vbnet) [Seleccionar]
Option Strict On
Option Explicit On
Public Class Form1

   Public Sub EventClickRef(ByRef Res As Integer)
       Dim nRandom As New Random
       Res = nRandom.Next(5 * Res) 'Multiplica el valor devuelto por 5 y lo mete en Res
   End Sub
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim Res As Integer = 2
       EventClickRef(Res) 'Envia el valor actual de Res (2) a EventClick y devuelve otro valor
       Button1.Text = CStr(Res)
   End Sub

   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

   End Sub
End Class




Título: Re: Parametros a funcion de Button_click()
Publicado por: 01munrra en 28 Octubre 2015, 03:30 AM
Cita de: Lekim en 27 Octubre 2015, 14:31 PM
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 (vbnet) [Seleccionar]

vector(0) = "amarrillo"
vector(1) = "rojo"
vector(3) = "naranja"
vector(4) = "negro"


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 (vbnet) [Seleccionar]

botton_resp1 ="amarrillo"
botton_resp2 = "rojo"


y cuando presione el boton_siguinte salga=
Código (vbnet) [Seleccionar]

botton_resp1 ="naranja"
botton_resp2 = "negro"


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 (vbnet) [Seleccionar]

Public Class Form1
   Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
   Dim Conmutador As Boolean
   Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
       Conmutador = IIf(Conmutador = False, True, False)
       Select Case Conmutador
           Case False
               Me.botton_resp1.Text = Vector(1)
               Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
               Me.botton_resp2.Text = Vector(2)
               Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
           Case True
               Me.botton_resp1.Text = Vector(3)
               Me.botton_resp1.BackColor = Color.Orange : Me.botton_resp1.ForeColor = Color.Black
               Me.botton_resp2.Text = Vector(4)
               Me.botton_resp2.BackColor = Color.Black : Me.botton_resp2.ForeColor = Color.White
       End Select
       Me.Text = Conmutador
   End Sub

   Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
       Me.botton_resp1.Text = Vector(1)
       Me.botton_resp1.BackColor = Color.Yellow : Me.botton_resp1.ForeColor = Color.Black
       Me.botton_resp2.Text = Vector(2)
       Me.botton_resp2.BackColor = Color.Red : Me.botton_resp2.ForeColor = Color.Black
   End Sub
End Class



TAMBIÉN SE PUEDE ESCRIBIR ASÍ:
Código (vbnet) [Seleccionar]
Public Class Form1
    Dim Vector() As String = {Nothing, "Amarillo", "Rojo", "Naranja", "Negro"}
    Dim Conmutador As Boolean
    Private Sub botton_siguiente_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botton_siguiente.Click
        Conmutador = IIf(Conmutador = False, True, False)
        Select Case Conmutador
            Case False
                With botton_resp1
                    .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
                End With
                With botton_resp2
                    .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
                End With
            Case True
                With botton_resp1
                    .Text = Vector(3) : .BackColor = Color.Orange : .ForeColor = Color.Black
                End With
                With botton_resp2
                    .Text = Vector(4) : .BackColor = Color.Black : .ForeColor = Color.White
                End With
        End Select
        Me.Text = Conmutador
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        With botton_resp1
            .Text = Vector(1) : .BackColor = Color.Yellow : .ForeColor = Color.Black
        End With
        With botton_resp2
            .Text = Vector(2) : .BackColor = Color.Red : .ForeColor = Color.Black
        End With
    End Sub
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 (vbnet) [Seleccionar]

Public Class Form1

    Dim vt(10) As String
    Dim cont As Integer = 0

    Private Sub cargar(ByRef vt() As String)

        vt(0) = "algo"
        vt(1) = "otro"
        vt(2) = "otro algo"
        vt(3) = "algo mas"
        vt(4) = "mucho mas"
        vt(5) = "otro mucho mas"
        vt(6) = "muchas cosas mas"
        vt(7) = "infinitas cosas"
        vt(8) = "infinitas cosas mas"
        vt(9) = "Fin de cosas"


    End Sub

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        cargar(vt)
    End Sub

    Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
        Button1.Text = ""
        Button2.Text = ""

        If cont = 9 Then
            'generar Salir
        Else
            cont = cont + 2
        End If

    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Button1.Text = vt(cont)
    End Sub

    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        Button2.Text = vt(cont + 1)
    End Sub
End Class
Título: Re: Parametros a funcion de Button_click()(SOLUCIONADO)
Publicado por: Eleкtro en 4 Noviembre 2015, 13:59 PM
Cita de: 01munrra en 26 Octubre 2015, 03:24 AMme arroja un error:
Código (vbnet) [Seleccionar]

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.



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).


Saludos