Как добавить подсказку или подсказку к метке в C # Winforms? - PullRequest
76 голосов
/ 19 марта 2012

Кажется, что Label не имеет свойства Hint или ToolTip или Hovertext.Итак, каков предпочтительный метод отображения подсказки, всплывающей подсказки или текста при наведении мыши на Label?

Ответы [ 5 ]

102 голосов
/ 19 марта 2012

Сначала вы должны добавить элемент управления ToolTip к вашей форме. Затем вы можете установить текст, который должен отображаться для других элементов управления.

Вот скриншот, показывающий конструктор после добавления ToolTip элемента управления с именем toolTip1:

enter image description here

77 голосов
/ 19 марта 2012
yourToolTip = new ToolTip();
//The below are optional, of course,

yourToolTip.ToolTipIcon = ToolTipIcon.Info;
yourToolTip.IsBalloon = true;
yourToolTip.ShowAlways = true;

yourToolTip.SetToolTip(lblYourLabel,"Oooh, you put your mouse over me.");
20 голосов
/ 19 марта 2012
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip( Label1, "Label for Label1");
13 голосов
/ 13 ноября 2014

просто еще один способ сделать это.

Label lbl = new Label();
new ToolTip().SetToolTip(lbl, "tooltip text here");
5 голосов
/ 09 марта 2016

Просто чтобы поделиться своей идеей ...

Я создал собственный класс для наследования класса Label.Я добавил приватную переменную, назначенную в качестве класса Tooltip, и открытое свойство TooltipText.Затем дал ему метод делегата MouseEnter.Это простой способ работы с несколькими элементами управления Label, и вам не нужно беспокоиться о назначении элемента управления Tooltip для каждого элемента управления Label.

    public partial class ucLabel : Label
    {
        private ToolTip _tt = new ToolTip();

        public string TooltipText { get; set; }

        public ucLabel() : base() {
            _tt.AutoPopDelay = 1500;
            _tt.InitialDelay = 400;
//            _tt.IsBalloon = true;
            _tt.UseAnimation = true;
            _tt.UseFading = true;
            _tt.Active = true;
            this.MouseEnter += new EventHandler(this.ucLabel_MouseEnter);
        }

        private void ucLabel_MouseEnter(object sender, EventArgs ea)
        {
            if (!string.IsNullOrEmpty(this.TooltipText))
            {
                _tt.SetToolTip(this, this.TooltipText);
                _tt.Show(this.TooltipText, this.Parent);
            }
        }
    }

В форме или методе InitializeComponent пользовательского элемента управления (код Designer) переназначьтеэлемент управления Label для пользовательского класса:

this.lblMyLabel = new ucLabel();

Кроме того, измените ссылку на частную переменную в коде конструктора:

private ucLabel lblMyLabel;
...