C# 关于ListView的一些问题

C# 关于ListView的一些问题,c#,winforms,listview,C#,Winforms,Listview,我有一些关于ListView的问题 第一个问题: 我在designer中创建了5个列表视图。 我试图创建4个ListView的数组(从第2个到最后一个),因此我尝试了以下语法[不在函数内部]: ListView[] lvs = { listView2, listView3, listView4, listView5 }; 但是它说ListView不是静态的,所以我尝试了这种语法(函数外部): 然后是内部函数 lvs = { listView2, listView3, listView4, li

我有一些关于ListView的问题

第一个问题: 我在designer中创建了5个列表视图。 我试图创建4个ListView的数组(从第2个到最后一个),因此我尝试了以下语法[不在函数内部]:

ListView[] lvs = { listView2, listView3, listView4, listView5 };
但是它说ListView不是静态的,所以我尝试了这种语法(函数外部):

然后是内部函数

lvs = { listView2, listView3, listView4, listView5 };
但它也不起作用,所以最后我使用了以下语法(函数外部):

这个内部功能是:

ListView[] lvs = new ListView[4];
ListView[] lvs = new ListView[4];
lvs[0] = listView2;
lvs[1] = listView3;
lvs[2] = listView4;
lvs[3] = listView5;
这起作用了。但是我想用前面的方法之一。。你能告诉我为什么其他语法对我不起作用,以及如何修复它吗

第二个问题:我试图检查listview1中的项目是否存在于listview2中。 所以我试过了

listView2.Items.Contains((ListViewItem)listView1.SelectedItems[0].Clone());
但它总是返回false,即使我这样做>

listView2.Items.Add((ListViewItem)listView1.SelectedItems[i].Clone());
如何修复它?为什么它总是返回false?>我不想通过运行循环并检查item=selecteditem来修复它

第三个也是最后一个问题(与列表视图无关): 我正在使用这个代码

((TabPage)tabControl1.Controls["tabPage" + (i + 1)])
将字符串转换为控件。唯一的问题是,我需要告诉控件他在哪个控件中,所以如果我想将字符串转换为位于另一个控件中的控件,该控件位于另一个控件中,该代码太长。。。有没有更好、更短、更简单的方法将字符串转换为控件(而不必写他在哪个控件中)


多谢各位

第一个问题

您需要插入
新列表视图[]

ListView[] lvs = new ListView[] { listView2, listView3, listView4, listView5 };
第二个问题
.Clone()
创建一个新对象,新对象与旧对象不同。

您需要在要比较的对象上找到另一个标识符。

第一个问题

您需要插入
新列表视图[]

ListView[] lvs = new ListView[] { listView2, listView3, listView4, listView5 };
第二个问题
.Clone()
创建一个新对象,新对象与旧对象不同。

您需要在要比较的对象上找到另一个标识符。

如果我正确理解您的第三个问题,您可能需要使用

tabControl.Controls.Find(string key, bool searchAllChildren)

我还认为不同的问题应该有不同的线索。

如果我正确理解了你的第三个问题,你可能会想使用

tabControl.Controls.Find(string key, bool searchAllChildren)

我还认为不同的问题应该有不同的线索。

每个问题应该是不同的帖子。每个问题应该是不同的帖子。这解决了我的第一个问题。关于第二个问题>我得到了要比较的项目的另一个标识符-它们的标签-如果两个项目相同,那么它们的标签应该相同(这就是我如何制作的),但是我如何通过标签值检查listview1中的项目是否存在于listview2中而不使用循环?这解决了我的第一个问题。关于第二个问题>我得到了要比较的项的另一个标识符-它们的标记-如果两个项相同,那么它们的标记应该相同(这就是我如何制作的),但是我如何通过它们的标记值检查listview1中的项是否存在于listview2中而不使用循环?