como saber si un objeto es un listbox o un checkbox

01/06/2005 - 16:41 por sergiño | Informe spam
tengo un bucle que recorre todos los controles que posee un panel. el caso es
que son 5 checkbox y un listview, el bucle para recorre el panes es este.

For Each chk As Object In Me.PanelPrioridad.Controls
'quiero haga lo de abajo solo si es un checkbox.
dim s as string = chk.Text
dsc.tables(tconfiguracion).rows(0)(s) = chk.Checked
Next
he probado con el IS con el Equal pero no encontrar la manera de distinguir
un objeto por codigo.
Espero haberme explicado bien, en el fondo solo quiero saber si existe
alguna manera de preguntar a un objeto, que de que tipo de clase proviene.

Preguntas similare

Leer las respuestas

#1 Valdov
01/06/2005 - 16:53 | Informe spam
Const strTextbox As String = "System.Windows.Forms.TextBox"

Const strCombobox As String = "System.Windows.Forms.ComboBox"

Const strLabel As String = "System.Windows.Forms.Label"

Const strPanel As String = "System.Windows.Forms.Panel"

Const strRadioButton As String = "System.Windows.Forms.RadioButton"

Const strButton As String = "System.Windows.Forms.Button"

Const strDateTimePicker As String = "System.Windows.Forms.DateTimePicker"

Const strCheckBox As String = "System.Windows.Forms.CheckBox"

Const strListBox As String = "System.Windows.Forms.ListBox"



Friend Sub Controles(ByVal objContenedor As Object)

Dim intI As Long

Try

For intI = 0 To objContenedor.Controls.Count - 1

Select Case
objContenedor.Controls.Item(intI).GetType.ToString

Case strTextbox

msgbox ("Soy un Texbox")

Case strCombobox

msgbox ("Soy un combo")

Case strDateTimePicker

msgbox("Soy un Date Time Picker")

Case strButton

msgbox ("Soy un Boton")

Case strCheckBox

msgbox("Soy un CheckBox")

Case strListBox

msgbox("Soy un ListBox")

Case strPanel

Call Controles(objContenedor.Controls.Item(intI))

End Select

Next

Catch Ex As Exception

MsgBox(Ex.Message, MsgBoxStyle.Exclamation + MsgBoxStyle.OKOnly,
Ex.Source)

End Try

End Sub


Valdov
Id Msn Messenger:




"sergiño" escribió en el mensaje
news:
tengo un bucle que recorre todos los controles que posee un panel. el caso
es
que son 5 checkbox y un listview, el bucle para recorre el panes es este.

For Each chk As Object In Me.PanelPrioridad.Controls
'quiero haga lo de abajo solo si es un checkbox.
dim s as string = chk.Text
dsc.tables(tconfiguracion).rows(0)(s) = chk.Checked
Next
he probado con el IS con el Equal pero no encontrar la manera de
distinguir
un objeto por codigo.
Espero haberme explicado bien, en el fondo solo quiero saber si existe
alguna manera de preguntar a un objeto, que de que tipo de clase proviene.

Respuesta Responder a este mensaje
#2 Joan Ibáñez
01/06/2005 - 17:04 | Informe spam
Tambien puedes probar con TypeOf.

Saludos,
Joan

"Valdov" escribió en el mensaje
news:
Const strTextbox As String = "System.Windows.Forms.TextBox"

Const strCombobox As String = "System.Windows.Forms.ComboBox"

Const strLabel As String = "System.Windows.Forms.Label"

Const strPanel As String = "System.Windows.Forms.Panel"

Const strRadioButton As String = "System.Windows.Forms.RadioButton"

Const strButton As String = "System.Windows.Forms.Button"

Const strDateTimePicker As String = "System.Windows.Forms.DateTimePicker"

Const strCheckBox As String = "System.Windows.Forms.CheckBox"

Const strListBox As String = "System.Windows.Forms.ListBox"



Friend Sub Controles(ByVal objContenedor As Object)

Dim intI As Long

Try

For intI = 0 To objContenedor.Controls.Count - 1

Select Case
objContenedor.Controls.Item(intI).GetType.ToString

Case strTextbox

msgbox ("Soy un Texbox")

Case strCombobox

msgbox ("Soy un combo")

Case strDateTimePicker

msgbox("Soy un Date Time Picker")

Case strButton

msgbox ("Soy un Boton")

Case strCheckBox

msgbox("Soy un CheckBox")

Case strListBox

msgbox("Soy un ListBox")

Case strPanel

Call Controles(objContenedor.Controls.Item(intI))

End Select

Next

Catch Ex As Exception

MsgBox(Ex.Message, MsgBoxStyle.Exclamation +


MsgBoxStyle.OKOnly,
Ex.Source)

End Try

End Sub


Valdov
Id Msn Messenger:




"sergiño" escribió en el mensaje
news:
> tengo un bucle que recorre todos los controles que posee un panel. el


caso
> es
> que son 5 checkbox y un listview, el bucle para recorre el panes es


este.
>
> For Each chk As Object In Me.PanelPrioridad.Controls
> 'quiero haga lo de abajo solo si es un checkbox.
> dim s as string = chk.Text
> dsc.tables(tconfiguracion).rows(0)(s) = chk.Checked
> Next
> he probado con el IS con el Equal pero no encontrar la manera de
> distinguir
> un objeto por codigo.
> Espero haberme explicado bien, en el fondo solo quiero saber si existe
> alguna manera de preguntar a un objeto, que de que tipo de clase


proviene.
>


Respuesta Responder a este mensaje
#3 sergiño
01/06/2005 - 17:20 | Informe spam
Gracias por vuestras constestaciones.
he usado el GetType, y funciona de maravilla, el typeof no se como funciona,
pero le echare un vistazo, gracias por todo.

For Each chk As object In Me.PanelEstado.Controls
dim ck as new CheckBox
'If chk.tostring = ck.tostring Then
if chk.GetType is ck.GetType then
dim s as string = chk.Text
dsc.tables(tconfiguracion).rows(0)(s) = chk.Checked
end if
Next
Respuesta Responder a este mensaje
#4 Eduardo A. Morcillo [MS MVP VB]
01/06/2005 - 20:47 | Informe spam
Con TypeOf:

For Each ctl As object In Me.PanelEstado.Controls

If TypeOf ctl Is CheckBox Then

' Es un CheckBox

End If

Next

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#5 Tristan
02/06/2005 - 00:36 | Informe spam
En efecto. TypeOf además tiene la ventaja de que incluye los tipos derivados
de CheckBox.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida