【C#】コントロールに説明を表示させる

スポンサーリンク

マウス(ポインタ)がコントロールの上に来た時に、そのコントロールがどんな処理をするのか説明のテキストが表示されるといいですよね?

今回は、マウスがコントロールの上に来た時、説明を表示させる方法について説明したいと思います。

ツールチップ(ツールヒント)を表示させる

まずは適当にGUIを作ります。

この上にマウス(ポインタ)が来た時に、説明を表示させます。

※using System.Windows.Forms が必要

ToolTip _ToolTip = null;
private void Form1_Load(object sender, EventArgs e)
{
    _ToolTip = new ToolTip();
    _ToolTip.SetToolTip(button1, "ボタン1だよ");
    _ToolTip.SetToolTip(button2, "ボタン2だよ");
    _ToolTip.SetToolTip(button3, "ボタン3だよ");
    _ToolTip.SetToolTip(comboBox1, "コンボボックス1だよ");
    _ToolTip.SetToolTip(comboBox2, "コンボボックス2");
    _ToolTip.SetToolTip(comboBox3, "コンボボックス3");
}

では、実行してみましょう!!

マウス(ポインタ)を「button1」の上に移動させると、無事に表示されました。

フォームデザイナになるコンポーネントを使用する

VisualStudioであれば、実は準備されてますwww

ダブルクリックして、デザイナに配置します。

プロパティからできるのかもしれませんが、よくわかりませんでしたwww

結局コードを書きます。

デザイナ上にコントロール(ToolTip)を設置しているので、インスタンスの生成をする必要はありません。

private void Form1_Load(object sender, EventArgs e)
{
    toolTip1.SetToolTip(button1, "ボタン1だよ");
    toolTip1.SetToolTip(button2, "ボタン2だよ");
    toolTip1.SetToolTip(button3, "ボタン3だよ");
    toolTip1.SetToolTip(comboBox1, "コンボボックス1だよ");
    toolTip1.SetToolTip(comboBox2, "コンボボックス2");
    toolTip1.SetToolTip(comboBox3, "コンボボックス3");
}

結果は先ほどと同じです。好きな方法を使いましょう

イベントを使う(MouseHover/MouseLeave)

この場合は、表示用のラベルが必要です。

一応作ってみましょう。

マウスをbutton1の上に行くと

イベントのMouseHoverを使います。

これはマウスが一定時間コントロールの上にいた時に発生するイベントです。

private void button1_MouseHover(object sender, EventArgs e)
{
    label1.Text = "ボタン1です。";
}

このままでは、マウスがコントロールが外れていても、表示し続けるため、イベントを1つ追加します。

MouseLeaveイベントです。

マウスがコントロール外に移動したときに発生するイベントです。

private void button1_MouseLeave(object sender, EventArgs e)
{
    label1.Text = "説明用(Label1)";
}

こうする事で、マウスがコントロールの上に来た時のみ表示する事ができます。

まとめ

今回はコントロールの説明を表示する方法について説明しました。

ToolTipやMouseイベントを使用する事で説明を表示する事ができます。

コメント

タイトルとURLをコピーしました