在 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 这样更合适的东西来列出你的文件名。
我正在处理标签页。在标签页里面,有一个列表,收集了要显示的项目(附在标签页上)。我正在尝试使添加到列表中的文件可点击,然后打开它们所在的目录。
我尝试了两种不同的方法。我无法让他们工作。
方法一-创建一个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 这样更合适的东西来列出你的文件名。