在 tabpage 内的列表中使字符串可点击

Making a string clickable in the list inside tabpage

我正在处理标签页。在标签页里面,有一个列表,收集了要显示的项目(附在标签页上)。我正在尝试使添加到列表中的文件可点击,然后打开它们所在的目录。

我尝试了两种不同的方法。我无法让他们工作。

方法一-创建一个link标签并附加System.Diagnostics.Process.Start("@"path"); 然后将 link 标签添加到我的列表中。

方法二 - 简单地使用字符串并使字符串可点击。

这是方法一的示例代码,我使用 Microsoft 示例对其进行了修改,以演示我的需要 - 这样做的问题不仅在于它不起作用,而且它只将一项设置为可点击。

public Form1()
{
    this.linkLabel1 = new System.Windows.Forms.LinkLabel();

    this.linkLabel1.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked);

    this.linkLabel1.Text = "Open folder";

    //Assume the list called ItemList is declared properly above
    //ItemList is attached to the tab page and whatever in it will be displayed item by item in seperated line.
    //I need to make them clickable.
    ItemList.Add(linkLabel1);
}

private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e)
{
    // Navigate to a URL.
    System.Diagnostics.Process.Start("@"path");
}

方法二-

string item1 = "file.txt";
fullPath = Path.GetFullPath(item1);
string Link = String.Format("<a href=\"{0}\">Click here</a>", fullPath);
ItemList.Add(Link);

方法二的问题在于它只显示以 href 开头的整个 link....

我可能还有其他解决方法,但假设我必须使用其中一种方法来工作。 请帮忙,谢谢。

您不能使列表或字符串中的值可点击,可点击只能是用户可以在其屏幕上看到的控件。您必须重新考虑您的方法:用户会看到什么,他会点击什么以及您希望在那一刻发生什么。

此外,在本地计算机上打开文件或文件夹根本不需要超链接,因此 LinkLabel 可能不是最佳选择。也许你应该更好地使用像 ListBox 这样更合适的东西来列出你的文件名。