Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C如何从另一个列表框中选择列表框上的对象_C#_Winforms - Fatal编程技术网

C# C如何从另一个列表框中选择列表框上的对象

C# C如何从另一个列表框中选择列表框上的对象,c#,winforms,C#,Winforms,假设我希望listBox1包含一组名字。当有人点击其中一个名字时,它会在listBox2中显示已经选中的姓氏 我似乎无法选择第二个列表框 因此,如果选择了listBox1中的第一项,则会选择listBox2中的第一项。等等 这怎么可能呢 下面是一些代码: private void materialFlatButton3_Click_1(object sender, EventArgs e) { OpenFileDialog OpenFileDialog1

假设我希望listBox1包含一组名字。当有人点击其中一个名字时,它会在listBox2中显示已经选中的姓氏

我似乎无法选择第二个列表框

因此,如果选择了listBox1中的第一项,则会选择listBox2中的第一项。等等

这怎么可能呢

下面是一些代码:

private void materialFlatButton3_Click_1(object sender, EventArgs e)
        {
            OpenFileDialog OpenFileDialog1 = new OpenFileDialog();
            OpenFileDialog1.Multiselect = true;
            OpenFileDialog1.Filter = "DLL Files|*.dll";
            OpenFileDialog1.Title = "Select a Dll File";
            if (OpenFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                // put the selected result in the global variable
                fullFileName = new List<String>(OpenFileDialog1.FileNames);


                foreach (string s in OpenFileDialog1.FileNames)
                {
                    listBox2.Items.Add(Path.GetFileName(s));
                    listBox4.Items.Add(s);
                }

            }
        }

    private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        string text = listBox2.GetItemText(listBox2.SelectedItem);
        textBox3.Text = text;
    }
在列表框4中,它显示完整路径。在listbox2中,它只显示文件名


当有人单击listbox2中的某个文件时,该文件的相应路径将在listbox4中被选中,我该怎么做呢?

创建您自己的类型以存储和显示文件名:

public class FileItem
{
    public FileItem (string path) => FullPath = path;
    public string FullPath { get; }
    public override ToString() => Path.GetFileName(FullPath);
}
并将这些项目添加到列表框中。这样,您可以存储完整路径,同时显示文件名


或者,只保留对原始文件数组的引用,或者将其内容复制到另一个数组。然后通过所选索引从该数组获取完整路径,而不是从用于存储内容的第二个列表框获取完整路径。

创建自己的类型以存储和显示文件名:

public class FileItem
{
    public FileItem (string path) => FullPath = path;
    public string FullPath { get; }
    public override ToString() => Path.GetFileName(FullPath);
}
并将这些项目添加到列表框中。这样,您可以存储完整路径,同时显示文件名


或者,只保留对原始文件数组的引用,或者将其内容复制到另一个数组。然后通过所选索引从该数组中获取完整路径,而不是从用于存储内容的第二个列表框中获取完整路径。

创建一个表示完整路径和名称的类以供显示。 然后使用“将加载的数据绑定到列表框”


创建一个类,该类表示要显示的完整路径和名称。 然后使用“将加载的数据绑定到列表框”


使用带有两列名称和完整名称的DataGridViewpath@Fabio我希望我的用户只看到名称,而不是完整路径。请使用带有两列名称和完整路径的DataGridViewpath@Fabio我希望我的用户只看到名称,而不是完整路径。