2014-01-24 36 views
0

我有一個文本框,當用戶輸入錯誤的內容時,應該顯示工具提示和解釋。通過代碼在特定控制位置顯示工具提示通過代碼

但我不能把tooltip放在正確的位置。

我的文本框位於組框和TabControl中。我嘗試這樣做:

Point locationOnForm = new Point(this.Left + tabCon.Left + gbDocs.Left + tbKey.Left, this.Top + tabCon.Top + gbDocs.Top + tbKey.Top);

tooltipError.Show("Test", this, locationOnForm , 3000);

但位置總是在附近,從來沒有在正確的位置。

+0

你想要它?在TextBox的某些部分,如右下角? – DonBoitnott

+0

左下角點後。或者接近那個地方。 –

回答

1

這將使你的刀尖上的文本框中

tooltipError.Show("TT Text", myGroupBox, textBox1.Left + textBox1.Width + 5, textBox1.Top, 3000); 

通知的權利 - 你需要設置分組框的窗口 - 你的刀尖必須在同一個座標文本框中顯示。效果很好。

在本說明中,爲什麼不使用專門爲此設計的ErrorProvider

+0

嗯,我要看看'ErrorProvider'。謝謝你的幫助。我的錯誤是在組合框的位置放置了「this」。 :) –

+0

沒問題。另外,如果有時你需要真正到達驗證器 - 你可以自己寫。使用標籤和定時器,做一個用戶控件,你可以在其上繪製各種各樣的東西,並使其閃爍,無論如何。而且它也相對容易 –

2

您可以很容易地獲得絕對定位。此示例將ToolTip放置在TextBox的右下角。

Point pt = new Point(0, 0); 
pt.Offset(textBox1.Width - 1, textBox1.Height - 1); 
toolTipError.Show("Test", textBox1, pt, 3000); 

請記住,您所提供的工具提示Point是相對於您提供的Control,在這種情況下textBox1