好的,我是一个完全的初学者,并设法在C#中组合一个小应用程序,我在文本框中输入用户名,应用程序获取该用户名的头像并将其显示在图片框中。
我想要做的是让工具提示显示鼠标悬停在加载的头像上时在文本框中输入的用户名。它应该在每次加载新头像时更改。我知道如何以正常方式使用工具提示,但这对我来说有点复杂。任何帮助将不胜感激。
感谢。
答案 0 :(得分:38)
使用以下代码将悬停事件添加到您的图片框。
private void pictureBox1_MouseHover(object sender, EventArgs e)
{
ToolTip tt = new ToolTip();
tt.SetToolTip(this.pictureBox1, "Your username");
}
答案 1 :(得分:19)
乔斯的答案确实完成了工作,但效率很低。每次ToolTip
悬停时,代码都会创建一个新的PictureBox
。使用SetToolTip()
方法时,它会将创建的ToolTip
与指定的控件相关联,并将ToolTip
保留在内存中。您只需要调用此方法一次。我建议您在表单构造函数中为每个ToolTip
只创建一个PictureBox
。我已经测试了这个并且工作正常,工具提示对我来说更快:
public MyForm()
{
InitializeComponent();
// The ToolTip for the PictureBox.
new ToolTip().SetToolTip(pictureBox1, "The desired tool-tip text.");
}
答案 2 :(得分:1)
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();
}
答案 3 :(得分:0)
Brandon-Miller的答案很好,除了因为他建议为每个PictureBox创建一个Tooltip。这仍然是无效的,虽然比Joe的方法更好 - 因为你实际上并不需要为整个表单提供多个Tooltip对象!它可以为不同的控件(表单上的位和bobs)创建数千个“工具提示定义”(可能不是实际术语)。这就是您在创建或设置工具提示时将控件定义为第一个参数的原因。
据我所知,正确的(或至少是最不浪费的)方法是为每个表单创建一个Tooltip对象,然后使用 SetTooltip 用于为不同控件创建“定义”的功能。 例如:
private ToolTip helperTip;
public MyForm()
{
InitializeComponent();
// The ToolTip inicialization. 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");
}
或者,稍微不同的是,预先完成了inicialization:
// 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为不同的控件创建新的工具提示。