【问题标题】:Using for loop to get selected items in a listbox not working with global variable使用 for 循环获取列表框中的选定项目不适用于全局变量
【发布时间】:2018-12-10 03:21:29
【问题描述】:

我的列表框中有两个项目:

item1
item2

当我选择第一个项目并单击一个按钮时,MessageBox 显示 item1。我单击确定,然后它会根据我的需要显示第二项。在调试我的应用程序时,全局变量“pattern”只显示第一个列表框项,循环并再次显示相同的项(item1)。我需要它来显示 item1,然后是 item2。我已经删除了此示例的其他代码,但我的目标是让这个 for 循环捕获字符串中的列表框项目,然后调用一个方法,该方法将根据列表框项目选择将文件复制到文件夹,循环遍历每个项目和为每个选定项目复制其他文件。我得到的问题是文件将被写入目标文件夹,然后我会收到一个文件已经存在的错误,因为它循环回第一个项目。然后它应该选择第二个项目并执行相同的操作,但复制方法实际上不会为列表中的第二个项目触发。

        for (int i = 0; i < listBox1.Items.Count; i++)
        {
            pattern = (listBox1.SelectedItem.ToString());
            MethodToCopyFiles(); // This is my method used to copy files based on the selected item in the listbox.  
            listBox1.SetSelected(i, true);
            MessageBox.Show(listBox1.SelectedItem.ToString()); // Just here for my example, not intended for the application.
        }

【问题讨论】:

    标签: c# for-loop listbox


    【解决方案1】:

    您可以尝试以下方法。

        for (int i = 0; i < listBox1.Items.Count; i++)
        {
            MessageBox.Show(listBox1.Items[i].ToString());
        }
    

    如果是多选,您可以使用下面的代码检索所有选定的项目。

        foreach(int i in listBox1.SelectedIndices)
        {
            MessageBox.Show(listBox1.Items[i].ToString());
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 2011-10-14
      • 2017-03-05
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多