さて、私は完全な初心者であり、テキストボックスにユーザー名を入力して、アプリケーションがそのユーザー名のアバターを取得して画像ボックスに表示するC#で小さなアプリを組み立てることができました。
ロードしたアバターの上にマウスを置いたときにテキストボックスに入力されたユーザー名をツールチップに表示することです。新しいアバターがロードされるたびに変更する必要があります。ツールチップの通常の使用方法は知っていますが、これは少し複雑です。どんな助けでもありがたいです。
ありがとう。
次のコードを使用して、ホバーイベントを画像ボックスに追加します。
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
ToolTip tt = new ToolTip();
tt.SetToolTip(this.pictureBox1, "Your username");
}
ジョーズの答えは仕事を成し遂げるが、それは非効率的です。コードは、ToolTip
がホバーされるたびに新しいPictureBox
を作成します。 SetToolTip()
メソッドを使用すると、作成されたToolTip
が指定されたコントロールに関連付けられ、ToolTip
がメモリに保持されます。このメソッドを呼び出す必要があるのは1回だけです。フォームコンストラクターでは、ToolTip
ごとにPictureBox
を1つだけ作成することをお勧めします。私はこれをテストしましたが、正常に動作し、ツールチップがより速く表示されます:
public MyForm()
{
InitializeComponent();
// The ToolTip for the PictureBox.
new ToolTip().SetToolTip(pictureBox1, "The desired tool-tip text.");
}
private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
ToolTip tooltip1 = new ToolTip();
tooltip1.Show(textBox1.Text, this.pictureBox1);
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
pictureBox1.Invalidate();
}
Brandon-Millerの答えは結構です。exceptは、PictureBoxごとに1つのツールチップを作成することを提案しているためです。これはまだ効果がありませんが、Joeのアプローチよりは優れています。フォーム全体で実際に複数のTooltipオブジェクトを必要としないためです。さまざまなコントロール(フォーム上のビットとボブ)に対して何千もの「ツールチップ定義」(おそらく実際の用語ではない)を作成できます。そのため、ツールチップを作成または設定するときに、最初のパラメーターとしてコントロールを定義します。
私が知っている限り、正しい(または少なくとも最も無駄のない)アプローチはフォームごとに1つのTooltipオブジェクトを作成するで、次にSetTooltip関数を使用して作成しますさまざまなコントロールの「定義」。
例:
private ToolTip helperTip;
public MyForm()
{
InitializeComponent();
// The ToolTip initialization. Do this only once.
helperTip = new ToolTip(pictureBox1, "Tooltip text");
// Now you can create other 'definitions', still using the same tooltip!
helperTip.SetToolTip(loginTextBox, "Login textbox tooltip");
}
または、少し異なりますが、事前に初期化を行います。
// Instantiate a new ToolTip object. You only need one of these! And if
// you've added it through the designer (and renamed it there),
// you don't even need to do this declaration and creation bit!
private ToolTip helperTip = new ToolTip();
public MyForm()
{
InitializeComponent();
// The ToolTip setting. You can do this as many times as you want
helperTip.SetToolTip(pictureBox1, "Tooltip text");
// Now you can create other 'definitions', still using the same tooltip!
helperTip.SetToolTip(loginTextBox, "Login textbox tooltip");
}
フォームデザイナでツールヒントを追加した場合は、最初の宣言を省略できます。それを初期化する必要すらありません(私の知る限り、これはデザイナが生成したコードで行う必要があります)。SetToolTipを使用して、さまざまなコントロールの新しいツールチップを作成するだけです。