我将字符串failing_client附加到使用C#的WinForms应用程序中名为report_output_box的RichTextBox控件。
是否可以在RichTextBox控件中单击该字符串,然后将字符串传递给onclick方法?
我有什么选择?
更新:我需要更加具体。我不想在OnClick操作上打开URL,而是调用函数。
示例代码:
//... code before this
//failing_client_list is list of servers
foreach (string failing_client in failing_client_list)
{
//link onclick will call a method w/ a string argument
report_output_box.LinkClicked += new
LinkClickedEventHandler(open_inet_window(failing_client));
report_output_box.AppendText(failing_client + "\n");
}
//code after...
//method it would call
private void open_inet_window(object sender, EventArgs e, string failing_client)
{
//create a window object (w/ window consturctor) and then open it
inet_clients_window inizzy_window = new inet_clients_window(failing_client);
inizzy_window.Show();
}
谢谢!
答案 0 :(得分:0)
请查看:http://www.codeproject.com/Articles/9196/Links-with-arbitrary-text-in-a-RichTextBox
本文介绍了一种在RichTextBox中创建自定义链接的方法,该链接不以http://或ftp://开头。
但是,通常,如果要添加以http://开头的链接,那么您需要做的就是确保RichTextBox的属性DetectUrls设置为true,然后您必须为此添加处理程序LinkClicked事件。
在StackOverFlow上进行一些搜索,你会发现一个非常好的来源:How can I make a hyperlink work in a RichTextBox?
这是我做的一个简单示例,请注意,通过e.LinkText您可以创建一个Switch()语句,然后根据链接URL值决定做什么?
namespace WindowsFormsApplication11
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
richTextBox1.LinkClicked += new LinkClickedEventHandler(richTextBox1_LinkClicked);
}
void richTextBox1_LinkClicked(object sender, LinkClickedEventArgs e)
{
MessageBox.Show("You clicked the link: " + e.LinkText);
}
private void Form1_Load(object sender, EventArgs e)
{
richTextBox1.AppendText("This is link1: http://www.google.com");
richTextBox1.AppendText("\nThis is link2: http://www.stackoverflow.com");
}
}
}