winforms 如何使用DataGridView中的数据填充CheckedListBox?

wqnecbli  于 2023-08-07  发布在  其他
关注(0)|答案(1)|浏览(113)

我是C#的初学者。我有一个窗体,在CellDoubleClickEvent中,它填充其相应列的文本框,反之亦然。类似这样的东西:-

{
                DataGridViewRow row = dataGridViewRoles.Rows[e.RowIndex];
                //ID, row.Cell[0] is where IDs are stored
                txtRolesUID.Text = row.Cells[0].Value.ToString();
                //Rolename row.Cell[1] is for Rolenames, etc
                txtRolesRoleName.Text = row.Cells[1].Value.ToString();
                //Description
                txtRolesRoleDescription.Text = row.Cells[2].Value.ToString();
            }

字符串
问题是我不知道如何为复选框或项目列表(如组合框或下拉框)执行此操作。
我试着用这个,但因为我不知道它的语法或逻辑,它失败了

//Rights
                chklbRolesRoleRights.Items.Add(row.Cells[3]);

ru9i0ody

ru9i0ody1#

当您尝试在代码中使用.Add(row.Cells[3])将值添加到组合框中时,实际上只是将cell对象添加到items列表中,这是无效的。
你要做的是添加row.Cells[3]的值,这是通过使用cell对象的Value属性来完成的。像这样:

chklbRolesRoleRights.Items.Add(row.Cells[3].Value);

字符串
就像你在问题中包含的第一个代码片段中所做的那样。
如果你想防止其他复杂的情况发生,你也可以添加.ToString(),这会强制它向combobox/items列表添加一个字符串值:.Add(row.Cells[3].Value.ToString())的值。
编辑:注意到@Ralf也在评论中指出了这一点

相关问题