Foros del Web » Programación para mayores de 30 ;) » .NET »

recuperar la posicion

Estas en el tema de recuperar la posicion en el foro de .NET en Foros del Web. he creado una matriz de cotroles tipo button les he asignado eventos y todo pero con que instrucion recobro la posicion que posee dentro de ...
  #1 (permalink)  
Antiguo 27/06/2007, 10:41
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
recuperar la posicion

he creado una matriz de cotroles tipo button les he asignado eventos y todo pero con que instrucion recobro la posicion que posee dentro de la matriz

mi estructura es:
Buses(i,j)
  #2 (permalink)  
Antiguo 27/06/2007, 15:09
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: recuperar la posicion

haber parece que no me explico bien o soy medio enrredado para explicar, la cos aes asi cree una matriz de controles especificamente de buttons les asigne el evento click, pero ahora lo que quiero es al hacer click en alguno de lso botones me retorne la posicion en la que se encuentra dentro de la matriz
es posible o estoy perdinedo mi tiempo?????
  #3 (permalink)  
Antiguo 28/06/2007, 10:15
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: recuperar la posicion

cmo nadie sabe????
mmm solo quiero recuperar el indice del objeto creado debe haber alguna instruccion o al momento de crearlos debo asignarles algo no lo se... necesito una orientada de como hacerlo???
asi es com creo parte de la matriz

Private Sub GeneraLC(ByVal ta As Integer, ByVal baño As String)
Dim i, j As Integer
Dim posx, posy As Integer
Dim espacio As Integer = 55 '//espacio entre los botones en las filas
Dim alto As Integer = 30 '// espacio enter los botones en las columnas
If (ta = 42) Or (ta = 46) And (baño = "central") Then
lc = Math.Round(((ta / 2) + 3) / 2)
Else
lc = ((ta / 2) + 2) / 2
End If
For i = 3 To 4
For j = 1 To lc
'inicializacion de la matriz
buses(i, j) = New Button
posx = j * espacio
posy = i * alto + 30
buses(i, j).Location = New System.Drawing.Point(posx, posy)
buses(i, j).Size = New System.Drawing.Size(42, 27)
buses(i, j).Image = Global.WindowsApplication1.My.Resources.Resources. Poltrona
Me.Controls.Add(buses(i, j))
AddHandler buses(i, j).Click, AddressOf Evento_Click
Next j
Next i

en algun lado debo asignar un indice.... o naque ver ya que solo quiero que en el Evento_Click creado para cada uno de los botones me retorne la posicion de que tiene dentro de la matriz
ejemplo : (2,6) algo asi...
  #4 (permalink)  
Antiguo 30/06/2007, 11:42
 
Fecha de Ingreso: marzo-2006
Mensajes: 202
Antigüedad: 18 años, 1 mes
Puntos: 2
Re: recuperar la posicion

La solucion a esto para quien no la sepa era tan sencillo como que al momento de crear mi matriz asignar en mi caso la propiedad tag de mi boton y este valor asignarle los indices que corresponden pero na mas chachara y veanlo por ustedes mismos:

Private Sub GeneraLC(ByVal ta As Integer, ByVal baño As String)
Dim i, j, x, y As Integer
Dim posx, posy As Integer
Dim espacio As Integer = 55 '//espacio entre los botones en las filas
Dim alto As Integer = 30 '// espacio enter los botones en las columnas
If (ta = 42) Or (ta = 46) And (baño = "central") Then
lc = Math.Round(((ta / 2) + 3) / 2)
Else
lc = ((ta / 2) + 2) / 2
End If
For i = 3 To 4
For j = 1 To lc
'inicializacion de la matriz
buses(i, j) = New Button
x = i
y = j

posx = j * espacio
posy = i * alto + 30
buses(i, j).Location = New System.Drawing.Point(posx, posy)
buses(i, j).Size = New System.Drawing.Size(42, 27)
buses(i, j).Image = Global.WindowsApplication1.My.Resources.Resources. Poltrona
buses(i, j).Tag = x & "," & y
Me.Controls.Add(buses(i, j))
AddHandler buses(i, j).Click, AddressOf Evento_Click
Next j
Next i
End Sub

des pues se rescata asi:
Private Sub Evento_Click(ByVal sender As Object, ByVal e As System.EventArgs)
'Aqui esta el evento
Dim ind As String
MsgBox(sender.text)
MsgBox(sender.tag)
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:40.