在标签页内的列表中使字符串可单击

时间:2019-06-26 00:31:44

标签: c# hyperlink tabpage

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

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

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

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

这是方法1的示例代码,我使用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开头。...

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

1 个答案:

答案 0 :(得分:0)

您不能使列表中的值或可点击的字符串成为可能,只能被用户在屏幕上看到的可点击控件。您必须重新考虑您的方法:用户将会看到什么,他会点击什么以及您当时想要做什么。

此外,您根本不需要超链接即可在本地计算机上打开文件或文件夹,因此LinkLabel可能不是最佳选择。也许您最好选择一些更合适的东西,例如ListBox来列出您的文件名。