Chicos estoy tratando de crear dinámicamente los paneles que son llenadas con siete botones de radio cada uno.
Puedo conseguir los paneles, sino que sólo se llena con 1 botón de radio de cada uno. ¿Qué estoy haciendo mal aquí? QuestionQuantity es un Entero y es la variable que determina el número de paneles que voy a crear. El código está en la forma en función de la carga localizada.

Gracias,

Dim Pan As Panel
Dim RButton As RadioButton

For x As Integer = 1 To QuestionsQuantity Step 1
        Pan = New Panel
        Pan.Name = "Panel" & Convert.ToString(x)
        Pan.Left = 300
        Pan.Top = 100 + 52 * (x - 1)
        Pan.Height = 48
        Pan.Width = 280
        Pan.BackColor = Color.Coral
        Controls.Add(Pan)

        For y As Integer = 1 To 7 Step 1
            RButton = New RadioButton
            RButton.Name = "RadioButton" & Convert.ToString(x) & Convert.ToString(y)
            RButton.Left = 1 + 30 * (y - 1)
            RButton.Top = 10
            RButton.Text = Convert.ToString(y)
            RButton.CheckAlign = System.Drawing.ContentAlignment.BottomCenter
            RButton.TextAlign = System.Drawing.ContentAlignment.TopCenter
            RButton.UseVisualStyleBackColor = True
            Controls.Add(RButton)
            Pan.Controls.Add(RButton)
        Next
Next

He metido con ella y se llevó a cabo el Panel de la sección y sólo utiliza los botones de radio para ver si puedo conseguir siete de estos. Puedo conseguir siete si me ofset en la dirección y (.la parte superior), pero no funciona por algún motivo en la x (.a la izquierda) dirección

For y As Integer = 1 To 7 Step 1
    RButton = New RadioButton
    RButton.Name = "RadioButton1" & Convert.ToString(y)
    RButton.Left = 20 + (y * 30)
    RButton.Top = 10
    RButton.Text = Convert.ToString(y)
    RButton.CheckAlign = System.Drawing.ContentAlignment.BottomCenter
    RButton.TextAlign = System.Drawing.ContentAlignment.TopCenter
    RButton.UseVisualStyleBackColor = True
    Controls.Add(RButton)
Next

Por favor me ayude!

Por fin lo conseguí. El problema fue declarar el tamaño del Botón de radio. Va a ser demasiado grande si no declarado (a) incluso si me hacen el espacio más grande.

RButton.Size = New System.Drawing.Size(17, 30)

Que resuelto el problema.

InformationsquelleAutor Patrik | 2011-12-01

3 Comentarios

  1. 1

    Usted debe utilizar un control de usuario que contiene los siete botones de radio.

    For x As Integer = 1 To QuestionsQuantity
      Dim pan As New QuestionUserControl
      Pan.Name = "Panel" & Convert.ToString(x)
      Pan.Left = 300
      Pan.Top = 100 + 52 * (x - 1)
      Pan.Height = 48
      Pan.Width = 280
      Pan.BackColor = Color.Coral
      Me.Controls.Add(Pan)
    Next

    Si quedarse con su actual código, eliminar este (debe ser sólo añadir al panel):

    For y As Integer = 1 To 7
      '//Controls.Add(RButton)
      Pan.Controls.Add(RButton)
    Next

    Tan lejos como ver el control, me imagino que no van «a la derecha» suficiente:

    Dim leftMark As Integer = 20
    For y As Integer = 1 To 7
      '//code
      RButton.Left = leftMark
      '//code
    
      leftMark += rButton.Width + 4
    Next
  2. 0
    1. con una Sartén.Altura = 48 no va a ser mucho más controles en el interior.
    2. Agregar el botón tanto para el panel de Controles ?
    • Bueno, veo el primer botón de radio. Los demás será el de la derecha porque me aumentar la RButtin.A la izquierda por 30. Creo que la primera vez tiene que añadir a la de control y, a continuación, «asignar» al panel?!
    • Mi mal.tal vez hay un conflicto entre las .La izquierda y la .Alinear de sus botones.
    • Corrí por sí mismo y manipular el código. He cambiado el .parte superior en lugar de la .a la izquierda y tengo siete componentes radiobutton debajo de cada uno de los otros. Algo se mete con el .a la izquierda
  3. 0

    Poner los botones de opción en un gridbox. Usted puede agregar dinámicamente filas de botones de radio como usted desea. Si esto funcionará para usted, voy a enviar un código de ejemplo cuando llego a casa.

Dejar respuesta

Please enter your comment!
Please enter your name here