使用循环将arraylist值输入复选框,给出错误的值

时间:2017-04-20 16:22:13

标签: vb.net arraylist

我有一个表格,我想用以下代码填写。目的是填写CheckBoxes,它们放在面板内,然后放在一些TabPages中。这段代码很好地抓住CheckBoxes的值,但由于某种原因它读取我的ArrayList错误。例如,如果ArrayList填充“1,1,0,0,0 ......”,它将每行读为“1”并相应地设置CheckBoxes。

我还尝试放置一个整数来查看它是否多次重复该过程(ArrayList包含16行),整数结果是16行的几倍。我确实尝试用if语句来约束循环,即使它在给定数字后停止,它仍然会产生错误的答案。

我已经停下来,无法弄清楚为什么这段代码不能解决问题。非常感谢帮助。

我应该提一下'tabell'是我试图从中提取数据的ArrayList。

(另外,如果之前有人问过,我真诚地抱歉重复这个问题。)

For Each rad In tabell
        For Each tb In TabControl1.Controls.OfType(Of TabPage)()
            For Each pnl In tb.Controls.OfType(Of Panel)().OrderBy(Function(c) c.TabIndex)
                For Each cb In pnl.Controls.OfType(Of CheckBox)()
                        If rad = 1 Then
                            cb.Checked = True
                        End If
                Next
            Next
            Next
    Next

1 个答案:

答案 0 :(得分:0)

您正在遍历void vymazstudenta(STUDENT **head,const char *priezvisko) { if (*head == NULL) { // empty list return; } if(!strcmp(*head->priezvisko,priezvisko)) { // Special case: // Remove the *head element STUDENT *hladany = *head; // Save a pointer to current head *head = *head->next; // Update head free(hladany); // Free the previous head return; } STUDENT *traverse = *head->next; STUDENT *previous = *head; while(traverse!=NULL) { if(!strcmp(traverse->priezvisko,priezvisko)) { previous->next = traverse->next; // Update previous to point // to element after traverse. free(traverse); // Now free traverse return; } previous = traverse; // Move previous to next element traverse = traverse->next; // Move traverse to next element } fprintf(stderr,"Student %s sa nenasiel.\n",priezvisko); return; } 中每个值的所有复选框,并且由于您从未取消选中这些框,因此第一个tabel1值将检查所有框,这就是它们将保留的方式。

我猜您要根据找到复选框的顺序使用1中的相应值(我认为这不一定与它们在屏幕上显示的顺序相匹配,所以你也可能要对复选框进行排序):

tabel1