可能重复:
create custom tooltip C#
当用户游标某个项目时,是否有人知道如何制作一个“弹出窗口”框?
例如,我希望在C#表单应用程序上有一个PictureBox,当用户对其进行游标时,会弹出一个文本框。
我知道ToolTip
但是我想的是更可定制的东西;在我的脑海里,我想到你在“魔兽世界”中看到的那种弹出框,当你将光标放在你的库存中的一个项目上时(显然它不一定是华而不实,但至少有一个文字颜色,背景颜色,文字等都可以修改。
答案 0 :(得分:3)
您可以使用ToolStripControlHost来托管控件(例如面板)并添加所需的内容。然后使用Items集合将该控件添加到ToolStripDropDown,并使用Show(Control,Point)方法显示控件。
以为我会添加一个例子
public class Form1 {
public Form1() {
ToolStripDropDown customToolTip = new ToolStripDropDown();
customToolTip.Items.Add(new CustomPopupControl("Hello", "world"));
MouseMove += (o, e) => {
Point location = e.Location;
location.Offset(0, 16);
customToolTip.Show(this, location);
};
}
class CustomPopupControl : ToolStripControlHost {
public CustomPopupControl(string title, string message)
: base(new Panel()) {
Label titleLabel = new Label();
titleLabel.BackColor = SystemColors.Control;
titleLabel.Text = title;
titleLabel.Dock = DockStyle.Top;
Label messageLabel = new Label();
messageLabel.BackColor = SystemColors.ControlLightLight;
messageLabel.Text = message;
messageLabel.Dock = DockStyle.Fill;
Control.MinimumSize = new Size(90, 64);
Control.Controls.Add(messageLabel);
Control.Controls.Add(titleLabel);
}
}
}
答案 1 :(得分:1)
我的意思是,如果是按钮或图像按钮,您可以添加类似MouseHover操作的内容,然后显示您的消息
private void button1_MouseHover(object sender, System.EventArgs e)
{
MessageBox.Show("yourmessage");
}
答案 2 :(得分:0)
您需要自定义工具提示。参考 http://www.codeproject.com/Articles/98967/A-ToolTip-with-Title-Multiline-Contents-and-Image
还有其他一些文章,但这个对我来说很好。
您可能需要为您的要求添加代码。