C#根据与数组匹配的项选中listview复选框
我是C#编程新手。我遇到了一个问题。问题是。我在winform应用程序中有listview控件。Listview有复选框。listview的第一列包含来自数据库的ID 我还有一个数组,我是这样写的C#根据与数组匹配的项选中listview复选框,c#,winforms,C#,Winforms,我是C#编程新手。我遇到了一个问题。问题是。我在winform应用程序中有listview控件。Listview有复选框。listview的第一列包含来自数据库的ID 我还有一个数组,我是这样写的 string selectCompany = "1,2,3,4"; companies = selectCompany.Split(new String[] { "," }, StringSplitOptions.None); 我只想做的是,如果listview第一列中的任何值在上面的数组中,我需要
string selectCompany = "1,2,3,4";
companies = selectCompany.Split(new String[] { "," }, StringSplitOptions.None);
我只想做的是,如果listview第一列中的任何值在上面的数组中,我需要检查该行。
如何做到这一点?
任何帮助都将不胜感激
更新
到目前为止,我掌握的代码是
string selectCompany = "1,2,3,4";
companies = selectCompany.Split(new String[] { "," }, StringSplitOptions.None);
foreach (DataRow row in company.Rows)
{
string[] rows = { row["type_id"].ToString(), row["type_name"].ToString()};
var listViewItem = new ListViewItem(rows);
lstCompanyType.Items.Add(listViewItem);
if (companies.Length > 0)
{
if (companies.Contains(row["type_id"]))
{
//i m JUST NOT SURE HOW TO CHECK LISTVIEW ITEMS THAT MATCHES THE ARRAY
}
}
serialno++;
}
谢谢
是代码中缺少的代码片段
是代码中缺少的代码片段
是代码中缺少的代码片段
是代码中缺少的代码片段。首先,这不是在C#中定义数组的方式。 正确的方法是
string[] array = {"1", "2", "3", etc.}
您需要获取ListView中的所有项,然后遍历ListView项
foreach(ListViewItem lvi in ListView.Items)
{
//for your "array" use
if(lvi.SubItems["key"].ToString() == selectCompany.Contains(lvi.SubItems["key"].ToString()))
{
lvi.Checked = true;
}
}
这将设置listview项的选中项
编辑:
试试这个
首先,这不是在C#中定义数组的方式。 正确的方法是
string[] array = {"1", "2", "3", etc.}
您需要获取ListView中的所有项,然后遍历ListView项
foreach(ListViewItem lvi in ListView.Items)
{
//for your "array" use
if(lvi.SubItems["key"].ToString() == selectCompany.Contains(lvi.SubItems["key"].ToString()))
{
lvi.Checked = true;
}
}
这将设置listview项的选中项
编辑:
试试这个
首先,这不是在C#中定义数组的方式。 正确的方法是
string[] array = {"1", "2", "3", etc.}
您需要获取ListView中的所有项,然后遍历ListView项
foreach(ListViewItem lvi in ListView.Items)
{
//for your "array" use
if(lvi.SubItems["key"].ToString() == selectCompany.Contains(lvi.SubItems["key"].ToString()))
{
lvi.Checked = true;
}
}
这将设置listview项的选中项
编辑:
试试这个
首先,这不是在C#中定义数组的方式。 正确的方法是
string[] array = {"1", "2", "3", etc.}
您需要获取ListView中的所有项,然后遍历ListView项
foreach(ListViewItem lvi in ListView.Items)
{
//for your "array" use
if(lvi.SubItems["key"].ToString() == selectCompany.Contains(lvi.SubItems["key"].ToString()))
{
lvi.Checked = true;
}
}
这将设置listview项的选中项
编辑:
试试这个
试试这个:
if (companies.Contains(row["type_id"])){
listViewItem.Checked = true;
}
试试这个:
if (companies.Contains(row["type_id"])){
listViewItem.Checked = true;
}
试试这个:
if (companies.Contains(row["type_id"])){
listViewItem.Checked = true;
}
试试这个:
if (companies.Contains(row["type_id"])){
listViewItem.Checked = true;
}
@TimSchmelter,我期待着这个答案。所有问题的通用答案,所有编程语言和每个人都知道的答案。我不是要一大堆代码。“对我来说,只要一个提示就足够了,我说我对C#编程相当陌生。”TimSchmelter,我期待着这个答案。所有问题的通用答案,所有编程语言和每个人都知道的答案。我不是要一大堆代码。“对我来说,只要一个提示就足够了,我说我对C#编程相当陌生。”TimSchmelter,我期待着这个答案。所有问题的通用答案,所有编程语言和每个人都知道的答案。我不是要一大堆代码。“对我来说,只要一个提示就足够了,我说我对C#编程相当陌生。”TimSchmelter,我期待着这个答案。所有问题的通用答案,所有编程语言和每个人都知道的答案。我不是要一大堆代码。对我来说,只要一个提示就足够了,我说我对C#编程相当陌生。我必须在我的
DataRow
foreach循环中使用这个循环??据我所知,listview不包含DataRow,除非你在数据集中循环。然后需要一种不同于我提供的方法是的,我正在循环dataset@King-金也给出了这个答案。我只是把它放在你的代码里,我得到了一个错误,在你的if条件下,运算符“==”不能应用于'string'和'bool'类型的操作数selectCompany.Contains
返回布尔值,不是吗??左侧操作数为字符串,右侧操作数为布尔值。此外,右侧总是返回1
或“0”。即使没有错误,代码似乎也不起作用,因为如果lvi.SubItems[“key”].ToString()
等于0或1,这将选中listview行。我必须在我的DataRow
foreach循环中使用此循环??据我所知,listview不包含DataRow,除非您在数据集中循环。然后需要一种不同于我提供的方法是的,我正在循环dataset@King-金也给出了这个答案。我只是把它放在你的代码里,我得到了一个错误,在你的if条件下,运算符“==”不能应用于'string'和'bool'类型的操作数selectCompany.Contains
返回布尔值,不是吗??左侧操作数为字符串,右侧操作数为布尔值。此外,右侧总是返回1
或“0”。即使没有错误,代码似乎也不起作用,因为如果lvi.SubItems[“key”].ToString()
等于0或1,这将选中listview行。我必须在我的DataRow
foreach循环中使用此循环??据我所知,listview不包含DataRow,除非您在数据集中循环。然后需要一种不同于我提供的方法是的,我正在循环dataset@King-金也给出了这个答案。我只是把它放在你的代码里,我得到了一个错误,在你的if条件下,运算符“==”不能应用于'string'和'bool'类型的操作数selectCompany.Contains
返回布尔值,不是吗??左侧操作数为字符串,右侧操作数为布尔值。此外,右侧总是返回1
或“0”。即使没有错误,代码似乎也不起作用,因为如果lvi.SubItems[“key”].ToString()
等于0或1,这将选中listview行。我必须在我的DataRow
foreach循环中使用此循环??据我所知,listview不包含DataRow,除非您在数据集中循环。然后需要一种不同于我提供的方法是的,我正在循环dataset@King-金也给出了这个答案。我只是把它放在你的代码里,我得到了一个错误,在你的if条件下,运算符“==”不能应用于'string'和'bool'类型的操作数selectCompany.Contains
返回布尔值,不是吗??左侧操作数为字符串,右侧操作数为boo