回答:
ToolTipは実際には、単一のフォーム上の複数の要素のツールヒントの表示を処理するWinFormsコントロールです。
ボタンの名前がMyButtonだとします。
カーソルをボタンの上に置くと、ツールチップが自動的に表示されますが、プログラムで表示する必要がある場合は、
MyToolTip.Show("Tooltip text goes here", MyButton)
コードでツールチップを表示し、MyToolTip.Hide(MyButton)でツールチップを非表示にします。
フォームデザイナーの使用:
次の呼び出しを使用して、プログラムでツールチップを設定することもできます。
this.toolTip1.SetToolTip(this.targetControl, "My Tool Tip");
ToolTipクラスを使用できます。
例:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.Button1, "Hello");
}
new ToolTip().SetToolTip(this.Button1, "Hello");
デフォルトのツールチップの場合、これを使用できます-
System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
ToolTip1.SetToolTip(this.textBox1, "Hello world");
ツールチップメッセージにフォーマットが必要な場合は、カスタマイズされたツールチップを使用することもできます。これは、フォームをカスタムフォーマットして作成し、コントロールのマウスホバーイベントのツールチップダイアログとして使用できます。詳細については、次のリンクを確認してください-
http://newapputil.blogspot.in/2015/08/create-custom-tooltip-dialog-from-form.html
Tagプロパティにテキストを遅延してコンパクトに格納する
少し怠惰で、他の目的でコントロールのTagプロパティを使用しない場合は、それを使用してツールチップテキストを格納し、MouseHoverイベントハンドラーをこのようなすべてのコントロールに次のように割り当てることができます。
private System.Windows.Forms.ToolTip ToolTip1;
private void PrepareTooltips()
{
ToolTip1 = new System.Windows.Forms.ToolTip();
foreach(Control ctrl in this.Controls)
{
if (ctrl is Button && ctrl.Tag is string)
{
ctrl.MouseHover += new EventHandler(delegate(Object o, EventArgs a)
{
var btn = (Control)o;
ToolTip1.SetToolTip(btn, btn.Tag.ToString());
});
}
}
}
この場合、Tagプロパティに文字列を持つすべてのボタンにMouseHoverイベントが割り当てられます。コンパクトに保つために、MouseHoverイベントはラムダ式を使用してインラインで定義されます。イベントでは、ホバーされたボタンのタグテキストがツールチップに割り当てられて表示されます。
.NETフレームワークは、ToolTipクラスを提供します。それらの1つをフォームに追加し、ツールチップを表示する各項目のMouseHoverイベントで、次のようなことを行います。
private void checkBox1_MouseHover(object sender, EventArgs e)
{
toolTip1.Show("text", checkBox1);
}
private void Form1_Load(object sender, System.EventArgs e)
{
ToolTip toolTip1 = new ToolTip();
toolTip1.AutoPopDelay = 5000;
toolTip1.InitialDelay = 1000;
toolTip1.ReshowDelay = 500;
toolTip1.ShowAlways = true;
toolTip1.SetToolTip(this.button1, "My button1");
toolTip1.SetToolTip(this.checkBox1, "My checkBox1");
}
もちろん、マウスホバーイベントを処理して、ツールチップを表示するように指示するだけです。tは、グローバルまたはコンストラクターで以下を使用して定義されたツールチップです。
ToolTip t = new ToolTip();
次にイベントハンドラ:
private void control_MouseHover(object sender, EventArgs e)
{
t.Show("Text", (Control)sender);
}