【问题标题】:Making label underline on mouse hover在鼠标悬停时制作标签下划线
【发布时间】:2014-01-18 15:49:50
【问题描述】:

当我用鼠标输入标签时,我需要在标签下划线。我怎样才能做到这一点?我尝试了几个选项,但没有奏效。谁能告诉我该怎么做?

【问题讨论】:

  • 你有没有尝试过?这是winforms、wpf还是别的什么?
  • 地铁?表格? WPF?银光?视窗电话? ASP.NET?单触?
  • 对不起,没有提到。我正在开发 WinForms

标签: c# winforms label underline


【解决方案1】:

您可以使用标签的MouseEnterMouseLeave 事件来修改使用的Font

private void OnMouseEnter(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Underline); 
}

private void OnMouseLeave(object sender, EventArgs e)
{
    label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Regular); 
}

如果不需要修改字体名称或大小可以直接使用new Font(label1.Font, FontStyle.Underline)

另外,如果需要添加多个样式,可以使用|操作符:

label1.Font = new Font(label1.Font.Name, label1.Font.SizeInPoints, FontStyle.Underline | FontStyle.Bold); 

【讨论】:

    【解决方案2】:

    您可以像这样使用MouseEnterMouseLeave 事件:

    private void label1_MouseEnter(object sender, EventArgs e)
    {
        label1.Font = new Font(label1.Font, FontStyle.Underline);
    }
    
    private void label1_MouseLeave(object sender, EventArgs e)
    {
        label1.Font = new Font(label1.Font, FontStyle.Regular);
    }
    

    【讨论】:

      【解决方案3】:

      使用这个。
      设置一个新的字体实例

      private void label1_MouseHover(object sender, EventArgs e)
              {
                  label1.Font = new Font(label1.Font.Name, 8, FontStyle.Underline);
                  label1.Font = new Font(label1.Font.Name, 8, FontStyle.Bold|FontStyle.Underline);//For Bold Also
              }   
      private void label1_MouseLeave(object sender, EventArgs e)
              {
                  label1.Font = new Font(label1.Font.Name, 8);
              }
      

      【讨论】:

        猜你喜欢
        • 2013-05-26
        • 1970-01-01
        • 2014-03-15
        • 1970-01-01
        • 2021-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-20
        相关资源
        最近更新 更多