首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使整个LinkLabel区域可点击

使整个LinkLabel区域可点击
EN

Stack Overflow用户
提问于 2013-08-31 15:01:30
回答 2查看 1.3K关注 0票数 1

我希望我的一些链接标签上有一个BackColor,有点像这样:

Click here

但问题是,您不能真正拥有一个可以单击的填充链接标签,您必须只单击文本(如果在填充区域内单击,则单击不会注册)。

因此,另一个选项是有一个面板内的链接标签,然后注册的链接标签和面板控件的点击事件,以获得可点击的按钮效果。

我们如何:

  • 在面板中创建链接标签,并让它们中的任何一个响应单击事件_without,必须注册以单击两个控件的事件;或:
  • 有一个10 of填充的LinkLabel,使链接标签完全可点击?
EN

回答 2

Stack Overflow用户

发布于 2013-08-31 15:19:47

事实上,一个LinkLabel可以包含许多Links,对于您的需求(可以单击背景),我们只能对一个链接使用LinkLabel,因为所有链接都有相同的背景区域,单击后台区域不能告诉我们单击了哪个链接。要处理对每个链接的单击,我们处理事件Click,但是要通过允许用户单击整个背景区域来改变事件LinkClicked的行为,必须正常地处理事件。如果需要,添加一些MouseEnterMouseLeave处理程序来更改背景色。以下是代码:

代码语言:javascript
复制
//Setup the link data for the LinkLabel
linkLabel1.Links.Add(new LinkLabel.Link() {Description = "StackOverflow", LinkData = "http://www.stackoverflow.com"});
linkLabel1.Text = "Stackoverflow";
linkLabel1.BackColor = Color.LightGray;
//Add 10px padding around the link text 
linkLabel1.Padding = new Padding(10);
//Do this to change the Cursor to Hand pointer when mouse over the whole link
linkLabel1.Cursor = Cursors.Hand;
//Click event handler for your linkLabel1
private void linkLabel1_Click(object sender, EventArgs e) {
  //Try showing the URL which the link refers
  //we can use this info to, for example, visit the link
  MessageBox.Show(linkLabel1.Links[0].LinkData.ToString());
}
//MouseEnter event handler to change the BackColor accordingly
private void linkLabel1_MouseEnter(object sender, EventArgs e) {
  linkLabel1.BackColor = Color.Yellow;
}
//MouseLeave event handler to change the BackColor accordingly
private void linkLabel1_MouseLeave(object sender, EventArgs e){
  linkLabel1.BackColor = Color.LightGray;
}

注意:通过这种方式定制,Label可以代替LinkLabel,我们只需要一些合适的FontTextAlignTag (适用于LinkData)。

票数 3
EN

Stack Overflow用户

发布于 2013-08-31 15:23:55

您可以通过使用链接标签的"Click“事件而不是使用"LinkClicked事件”来使填充的链接标签可点击。

代码语言:javascript
复制
private void linkLabel1_Click(object sender, EventArgs e)
        {

             //Your code here
            MessageBox.Show("Clicked Me");
        }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18549482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档