Autor
|
Tema: Parametros a funcion de Button_click()(SOLUCIONADO) (Leído 3,613 veces)
|
01munrra
Desconectado
Mensajes: 282
|
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: 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: 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!
|
|
« Última modificación: 29 Octubre 2015, 04:33 am por 01munrra »
|
En línea
|
|
|
|
Lekim
Desconectado
Mensajes: 268
|
Hola Si pones tex, lógico que te de error porque es text. Bueno, fuera bromas Ya te lo está diciendo: porque no tienen una firma compatibleNo se muy bien lo que quieres hacer, haber si esto te sirve como solución: 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
|
|
« Última modificación: 27 Octubre 2015, 14:32 pm por Lekim »
|
En línea
|
|
|
|
01munrra
Desconectado
Mensajes: 282
|
Si pones tex, lógico que te de error porque es text. jajaja fijate lo que quiero hacer, tengo una serie de respuestas; ejemplo: 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: botton_resp1 ="amarrillo" botton_resp2 = "rojo"
y cuando presione el boton_siguinte salga= botton_resp1 ="naranja" botton_resp2 = "negro"
como puedo hacer eso?.... me tiene loco por que no he podido....
|
|
|
En línea
|
|
|
|
Lekim
Desconectado
Mensajes: 268
|
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Í: 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
|
|
« Última modificación: 28 Octubre 2015, 18:17 pm por Lekim »
|
En línea
|
|
|
|
01munrra
Desconectado
Mensajes: 282
|
Oye....! Gracias me ha servido bastante...... algo asi fue lo que hice, claro esta es una prueba, pero lo hace. 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
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.818
|
me arroja un error: 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
|
|
« Última modificación: 4 Noviembre 2015, 14:02 pm por Eleкtro »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
funcion que devuelva 4 parametros
Programación C/C++
|
mapers
|
3
|
4,467
|
4 Diciembre 2010, 04:51 am
por mapers
|
|
|
puntero de una funcion con dos parametros.
Programación Visual Basic
|
LeandroA
|
1
|
2,669
|
12 Septiembre 2011, 00:34 am
por Karcrack
|
|
|
problema parametros funcion
Programación C/C++
|
sargo
|
2
|
2,057
|
24 Marzo 2012, 00:39 am
por Beakman
|
|
|
funcion recibe dos parametros
« 1 2 »
Programación C/C++
|
ALONSOQ
|
18
|
7,841
|
2 Septiembre 2012, 17:56 pm
por xiruko
|
|
|
[SOLUCIONADO][Ayuda]Parametros en la funcion main con Geany, C++
Programación C/C++
|
darking664
|
4
|
4,257
|
8 Septiembre 2013, 03:42 am
por darking664
|
|