にはorまたはorプロパティLabel
がないようです。では、マウスが近づいたときにヒント、ツールチップ、またはホバーテキストを表示するための推奨される方法は何ですか?Hint
ToolTip
Hovertext
Label
回答:
ToolTip
最初にフォームにコントロールを追加する必要があります。次に、他のコントロールに表示するテキストを設定できます。
ToolTip
これは、次の名前のコントロールを追加した後のデザイナーを示すスクリーンショットですtoolTip1
。
ToolTip
コントロールはマウスオーバーイベントに登録し、発生したイベントに応じて適切なテキストを表示できます。これはすべてバックグラウンドで発生します。
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.");
私の考えを共有するためだけに...
Labelクラスを継承するカスタムクラスを作成しました。Tooltipクラスとして割り当てられたプライベート変数とパブリックプロパティTooltipTextを追加しました。次に、MouseEnterデリゲートメソッドを指定しました。これは、複数のラベルコントロールを操作する簡単な方法であり、各ラベルコントロールにツールチップコントロールを割り当てることを心配する必要はありません。
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();
また、Designerコードのプライベート変数参照を変更します。
private ucLabel lblMyLabel;