我之前發佈了這個問題,有人將其標記爲DUPLICATE。但是當我問他關於那個應該有答案的帖子時,他沒有任何適當的解釋。所以請在標記或投票前仔細閱讀這個問題。禁用按鈕上的工具提示
我的問題是關於在DISABLED按鈕上顯示工具提示。
this.btnMy.Enabled = false;
我有一個按鈕,它放置在一個面板裏面,並帶有與其相關的工具提示。現在,當按鈕被啓用時,它都可以正常工作。
但是,如果按鈕是已禁用,則工具提示不起作用。這似乎是標準的行爲。
現在我想要顯示的按鈕時,工具提示已禁用太。所以我做了以下事情。
private ToolTip m_tooltip = new ToolTip();
private bool toolTipShown = false;
private button btnMy;
m_tooltip.InitialDelay = 0;
m_tooltip.ShowAlways = true;
private void myForm_MouseMove(object sender, MouseEventArgs e)
{
if (this.btnMy == FindControlAtCursor(this))
{
if (!toolTipShown)
{
m_tooltip.Show("MyToolTip", this.btnMy, e.Location);
toolTipShown = true;
}
}
else
{
m_tooltip.Hide(this.btnGiven);
toolTipShown = false;
}
}
由於按鈕是面板的內部,我不得不使用其他幾個功能找到確切按鈕控制當鼠標在它。
public static Control FindControlAtPoint(Control container, Point pos)
{
Control child;
foreach (Control c in container.Controls)
{
if (c.Visible && c.Bounds.Contains(pos))
{
child = FindControlAtPoint(c, new Point(pos.X - c.Left, pos.Y - c.Top));
if (child == null) return c;
else return child;
}
}
return null;
}
public static Control FindControlAtCursor(Form form)
{
Point pos = Cursor.Position;
if (form.Bounds.Contains(pos))
return FindControlAtPoint(form, form.PointToClient(Cursor.Position));
return null;
}
現在,當我調試,我可以看到代碼找到正確的按鈕,並嘗試調用ToolTip.Show,但由於某種原因,它沒有得到顯示。
在調試時,我看到一個小的工具提示彈出。在發佈模式下其他方面,沒有任何顯示。
任何想法?
右側頂部_Related_問題是[此](http://stackoverflow.com/questions/491267/how-can-i-show-a-tooltip-on-a-disabled-按鈕?RQ = 1)。這個問題的答案不適用嗎? – HABO