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

generacion dinamica de controles

Estas en el tema de generacion dinamica de controles en el foro de .NET en Foros del Web. Hola el problema q tengo es que quiero generar un tipo cuestionario cargado desde una base de datos con los campos codigo, pregunta, r1, r2, ...
  #1 (permalink)  
Antiguo 25/12/2005, 20:49
 
Fecha de Ingreso: octubre-2004
Mensajes: 11
Antigüedad: 19 años, 6 meses
Puntos: 0
generacion dinamica de controles

Hola el problema q tengo es que quiero generar un tipo cuestionario cargado desde una base de datos con los campos codigo, pregunta, r1, r2, r3 y RC. R1 a r3 logicamente serian las posibles respuestas y RC seria la respuesta correcta, bueno a grano, en el siguiente codigo genero una busqueda para que me encuentre los valores necesarios y resulta de lo lindo pero al generar el segundo groupbox no se que pasa con las coordenadas que se me pierden las respuestas, el primer groupbox junto con la pregunta y respuestas me sale bien pero los demas como que estoy algo atorado en eso...cualquier ayuda sera bienvenida...en este angustiante estado en que me encuentro...jejeje. el codigo es el siguiente.

previamente hago un contador para ver el total de preguntas y la iguala ala variable "Variable" muy original el nombre no?..jeje


Private Sub Generar()
'Me.PanelControl1.Controls.Clear()
m_Location = New Point(10, 25)
Dim i As Integer
For i = 1 To Variable - 1

m_ControlCount += 1

'-----------------------------busqueda------------

conn.Close()
conn.Open()
Dim sstring, sstring2, sstring1 As String
Try
sstring = "SELECT Pregunta FROM tabla where codigo='" & i.ToString & " ' "
Dim Cmd999 As New SqlCommand(sstring, conn)
Cmd999.ExecuteNonQuery()
var = Cmd999.ExecuteScalar
Catch ex As Exception
Variable = 1
'MsgBox(ex.Message)
Catch er As SqlException
MsgBox(er.Message)
Variable = 1
End Try

'-------------------------------------------

Dim GB As New GroupBox

With GB

GB.Size = New System.Drawing.Size(520, 120)
.Text = "Moralito"
.Name = "Moraito"
.Location = New Point(m_Location.X, m_Location.Y)
Me.Controls.Add(GB)

Dim com As New Label
With com
.Text = var.ToString
.Name = var.ToString + i.ToString
.Location = New Point(10, GB.Location.Y + 3) 'New Point(m_Location.X, m_Location.Y)
com.BringToFront()

End With
GB.Controls.Add(com)

AddHandler com.Click, AddressOf Cambiarimagen
m_Location.Y += 23

Dim x As Integer
Dim y As String

sstring = "SELECT r1 FROM tabla where codigo='" & i.ToString & " ' "
sstring1 = "SELECT r2 FROM tabla where codigo='" & i.ToString & " ' "
sstring2 = "SELECT r3 FROM tabla where codigo='" & i.ToString & " ' "

Dim Cmd9999 As New SqlCommand(sstring, conn)
Cmd9999.ExecuteNonQuery()
var1 = Cmd9999.ExecuteScalar

Dim Cmd1 As New SqlCommand(sstring1, conn)
Cmd1.ExecuteNonQuery()
Dim var2 As String
var2 = Cmd1.ExecuteScalar

Dim Cmd2 As New SqlCommand(sstring2, conn)
Cmd2.ExecuteNonQuery()
Dim var3 As String
var3 = Cmd2.ExecuteScalar


Dim rd As New RadioButton
With rd
.Text = var1.ToString
.Name = var1.ToString + i.ToString
'.Location = New Point(m_Location.X, m_Location.Y)
.Location = New Point(10, com.Location.Y + 20)
End With

GB.Controls.Add(rd)
AddHandler rd.Click, AddressOf Cambiarimagen
m_Location.Y += 23

Dim rd2 As New RadioButton
With rd2
.Text = var2.ToString
.Name = var2.ToString + i.ToString
'.Location = New Point(m_Location.X, m_Location.Y)
.Location = New Point(10, rd.Location.Y + 20)
End With

GB.Controls.Add(rd2)
AddHandler rd2.Click, AddressOf Cambiarimagen
m_Location.Y += 23

Dim rd3 As New RadioButton
With rd3
.Text = var3.ToString
.Name = var3.ToString + i.ToString
'.Location = New Point(m_Location.X, m_Location.Y)
.Location = New Point(10, rd2.Location.Y + 20)
End With

GB.Controls.Add(rd3)
AddHandler com.Click, AddressOf Cambiarimagen
m_Location.Y += 23

End With


m_Location.Y += 50 '80
'GB.SendToBack()

Next i
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 05:08.