Görünüşe göre Label
hiç Hint
ya ToolTip
da Hovertext
mülkü yok. Öyleyse bir ipucu, araç ipucu veya fareyle üzerine gelindiğinde metin göstermenin tercih edilen yöntemi Label
nedir?
Görünüşe göre Label
hiç Hint
ya ToolTip
da Hovertext
mülkü yok. Öyleyse bir ipucu, araç ipucu veya fareyle üzerine gelindiğinde metin göstermenin tercih edilen yöntemi Label
nedir?
Yanıtlar:
Önce ToolTip
formunuza bir kontrol eklemelisiniz . Daha sonra diğer kontroller için göstermesi gereken metni ayarlayabilirsiniz.
İşte ToolTip
, adlı bir denetim ekledikten sonra tasarımcıyı gösteren bir ekran görüntüsü toolTip1
:
ToolTip
kontrol, fare ile üzerine gelme olayları için kendisini kaydedebilir ve oluşan olaya bağlı olarak uygun metni görüntüleyebilir. Bunların hepsi arka planda oluyor.
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.");
Sadece fikrimi paylaşmak için ...
Label sınıfını devralmak için özel bir sınıf oluşturdum. Bir Tooltip sınıfı olarak atanan özel bir değişken ve bir genel özellik olan TooltipText ekledim. Ardından, bir MouseEnter temsilci yöntemi verdi. Bu, birden çok Etiket denetimi ile çalışmanın kolay bir yoludur ve her Etiket denetimi için Araç İpucu denetiminizi atama konusunda endişelenmenize gerek yoktur.
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);
}
}
}
Form veya kullanıcı denetiminin InitializeComponent yönteminde (Tasarımcı kodu), Etiket denetiminizi özel sınıfa yeniden atayın:
this.lblMyLabel = new ucLabel();
Ayrıca, Tasarımcı kodundaki özel değişken referansını değiştirin:
private ucLabel lblMyLabel;