【问题标题】:how to Convert label.text to linklabel如何将 label.text 转换为 linklabel
【发布时间】:2013-08-12 02:23:57
【问题描述】:

我正在获取标签文本中的一些文件名:

label1.Text += filename+ Environment.NewLine;

我想将这些文件名转换为超链接(这样当我单击该文件名时,文件应该会打开)。现在如何为标签提供链接标签属性?

【问题讨论】:

标签: c# winforms hyperlink label


【解决方案1】:

试试这个:

label1.Text += "<a href="yourpath/"+ filename+ ">Click THIs</a>"+Environment.NewLine;

【讨论】:

  • 努力工作!给出这样的输出:
  • winforms 不是java,如果你想要更多的控制权,使用wpf 是最好的选择。
【解决方案2】:

您可以执行以下操作:(但是为了使其看起来更好,您应该尝试自定义您自己的链接列表,例如使用Panel)。此代码使用网站地址而不是文件。您可以将链接文本替换为您的file name,并将链接网址替换为您的file path

Dictionary<string, string> links = new Dictionary<string, string>();
links.Add("Google","http://www.google.com");
links.Add("StackOverflow", "http://www.stackoverflow.com");
links.Add("CodeProject", "http://www.codeproject.com");
int i = 0;
linkLabel1.Text = "";
foreach (KeyValuePair<string, string> link in links)
{
     linkLabel1.Text += link.Key + "\n\n";
     linkLabel1.Links.Add(new LinkLabel.Link(i, link.Key.Length, link.Value));
     i = linkLabel1.Text.Length;
}
//Adding this to your form constructor would be OK
linkLabel1.LinkBehaviour = LinkBehavior.HoverUnderline;    
linkLabel1.LinkClicked += (s,e) => {
   System.Diagnostics.Process.Start(e.Link.LinkData.ToString());
};

【讨论】:

  • 我不能使用:links.Add("Google","google.com"); 因为文件名将由查询获取
  • @Sagarikachaturvedi 但你的问题并没有表明这一点,这对我来说太混乱了。您应该更新显示如何获得Filename 的问题。 无论如何,您可以使用我的代码添加任何链接一旦您拥有Link TextLink URL(包括FileNameFile Path
  • 感谢这个 sn-p。现在我将查询结果放在一个字符串数组中,并使用您的代码的某些部分来访问这些文件。
  • @Sagarikachaturvedi 如果有帮助,请接受答案,这只是一个 SO 的指导方针,最好的答案应该被接受。
  • @Sagarikachaturvedi 只需点击投票人数下方的V-shaped tick
猜你喜欢
  • 2016-10-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-17
  • 2021-05-27
  • 2010-09-08
  • 2013-09-21
  • 2011-05-14
相关资源
最近更新 更多