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!
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:
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
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:
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.... :o
(http://4.bp.blogspot.com/-YUORC5YyyPQ/VjD_4IUu-AI/AAAAAAAAASo/rsASMO386po/s1600/Conmutador.gif)
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
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
Cita de: 01munrra en 26 Octubre 2015, 03:24 AMme 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).
- 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