2
我有一個組合表單來獲取客戶和按鈕。 選擇客戶並將鼠標移到按鈕上時,會顯示一個工具提示,其中包含有關該客戶的信息。使用MouseOver事件時會顯示幾個工具提示文本
我已經使用ToolTip_Draw自定義了工具提示。
所有這些工作正常。
問題是,當我更改de選定的客戶,然後將鼠標移動到按鈕上時,會顯示幾個工具提示文本。一個用於我之前選擇的每個客戶。
我試圖以某種方式清空德工具提示,但似乎沒有工作。
private void bttCitas_MouseHover(object sender, EventArgs e)
{
string mSQL = @" SELECT one, two, three
FROM customers
WHERE id = " + comboCliente.SelectedValue + ";";
DataTable tablaTemp = retrieveData(mSQL);
string customerText = ConvertDataTableToString(tablaTemp);
System.Windows.Forms.ToolTip Emergente = new System.Windows.Forms.ToolTip();
Emergente.OwnerDraw = true;
Emergente.Draw += new DrawToolTipEventHandler(ToolTip_Draw);
Emergente.AutoPopDelay = 150000;
Emergente.InitialDelay = 500;
Emergente.ReshowDelay = 500;
Emergente.SetToolTip(this.bttCitas, customerText);
}
void ToolTip_Draw(object sender, DrawToolTipEventArgs e)
{
using (e.Graphics)
{
Font f = new Font("Courier New", 9.0f);
e.DrawBackground();
e.DrawBorder();
SolidBrush myBrush = new SolidBrush(GLOBALToolTipFontColor);
e.Graphics.DrawString(e.ToolTipText, f, myBrush, new PointF(2, 2));
}
}
雖然我不能查明原因,我一定會移動工具提示創建到,除發生頻率較低的事件mouse_hover;可能到您更新客戶的代碼。這樣,每次將鼠標移到按鈕上時,您都會完成一個完整的數據庫,只能一次又一次地檢索相同的信息,並創建更多的工具提示實例。 – SJuan76