2015-01-06 2 views
0

Я хочу перетасовать вопросы в текстовые поля с ответами в контрольных списках. Проблема заключается в том, что текстовые поля не перетасовываются, но контрольные списки не работают.Как мне перетасовать контрольный список?

Dim txtQ() As TextBox = {txtQ1, txtQ2, txtQ3, txtQ4, txtQ5, txtQ6, txtQ7, txtQ8, txtQ9, txtQ10} 
    Dim cbA() As CheckedListBox = {cbA1, cbA2, cbA3, cbA4, cbA5, cbA6, cbA7, cbA8, cbA9, cbA10} 
    While r.Read 
     If i <= 9 Then 

      txtQ(i).Text = r.GetString("exam_question") 
      cbA(i).Items.Clear() 
      cbA(i).Items.Add("a) " & r.GetString("exam_ans_a")) 
      cbA(i).Items.Add("b) " & r.GetString("exam_ans_b")) 
      cbA(i).Items.Add("c) " & r.GetString("exam_ans_c")) 
      cbA(i).Items.Add("d) " & r.GetString("exam_ans_d")) 

      i = i + 1 
     End If 
    End While 
    Dim n As Integer = i - 1 
    Randomize() 
    While i > 0 
     Dim j As Integer = CInt(Int(n * Rnd())) 
     i = i - 1 
     Dim tmpQ As String = txtQ(i).Text 
     txtQ(i).Text = txtQ(j).Text 
     txtQ(j).Text = tmpQ 
     Dim tmpA As CheckedListBox = cbA(i) 
     cbA(i) = cbA(j) 
     cbA(j) = tmpA 
    End While 
+1

Возможный дубликат [случайных и случайных вопросов vb] (http://stackoverflow.com/questions/27634541/random-and-shuffle-questions-vb) – Codexer

+0

Не публикуйте его не очень хорошую практику. Вы приняли другой вопрос, в чем проблема, с которой вы столкнулись сейчас? Если другой не помог, почему вы его приняли. Публикация вопросов о путях не заставит вас нигде далее ... – Codexer

+0

им очень жаль, что это не повторится – AJNovice

ответ

1

Вы используете свойство значения типа в случае TextBoxes и референс-типа в случае CheckBoxes. Вам лучше поменять текст этих элементов CheckedListBox, чтобы он мог корректно вести себя. Просто назначение одной ссылки CheckBox Item на другой элемент CheckBox не приносит пользы.

Смежные вопросы