我在表单上有一个usercontrol2(自定义)。我在用户控件上定义了一个工具提示。 usercontrol2上面有一些子控件。
我希望在单击usercontrol2上的特定子控件时显示工具提示。仅当我在子控件之外单击时,工具提示才应隐藏。
当我单击子控件时,将显示工具提示,但是一旦移动鼠标位置,该工具提示就会隐藏。另外,当我在子控件之外单击并再次单击子控件时,不会显示工具提示。
子控件被命名为usercontrol1。
public partial class UserControl2 : UserControl
{
private Boolean IsToolTipShown;
public UserControl2()
{
InitializeComponent();
WireControl(userControl11);
InitiliseToolTip();
}
private void WireControl(Control cont)
{
cont.MouseClick += UserControlMouseClick;
foreach (Control ctl in cont.Controls)
{
ctl.MouseClick += UserControlMouseClick;
if (ctl.HasChildren) WireControl(ctl);
}
}
private void UserControlMouseClick(object sender, MouseEventArgs e)
{
if (!IsToolTipShown)
{
string s = null;
for (int i = 0; i < 5; i++)
{
s += string.Concat(i, Environment.NewLine);
}
toolTip1.Show(s, userControl11);
IsToolTipShown = true;
}
}
private void InitiliseToolTip()
{
IsToolTipShown = false;
toolTip1.AutomaticDelay = 0;
toolTip1.BackColor = Color.Chartreuse;
toolTip1.StripAmpersands = true;
toolTip1.ToolTipIcon = ToolTipIcon.Info;
toolTip1.UseFading = false;
}
protected override void OnMouseClick(MouseEventArgs e)
{
base.OnMouseClick(e);
if (IsToolTipShown)
{
toolTip1.Hide(userControl11);
IsToolTipShown = false;
}
}
}