メッセージボックスを表示する代わりに、エラーが発生したときにバルーンチップを表示したい。
[注]マウスホバーに表示したくありませんでした。
両方試してみましたが、実際にはマウスホバーのヒントが表示されます
toolTip1.SetToolTip();
toolTip1.Show();
ツールチップポップアップイベントを使用して、ツールチップが存在するかどうかを確認し、存在しない場合はキャンセルできます。次に、検証中にツールチップを設定して表示できます。この例では、2秒のタイムアウト後にツールチップテキストをリセットするようにタイマーを設定しました。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
toolTip1.IsBalloon = true;
toolTip1.Popup += new PopupEventHandler(toolTip1_Popup);
toolTip1.SetToolTip(textBox1, "");
}
void toolTip1_Popup(object sender, PopupEventArgs e)
{
if (toolTip1.GetToolTip(e.AssociatedControl) == "")
e.Cancel = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
timer1.Stop();
toolTip1.RemoveAll();
}
private void textBox1_Validating(object sender, CancelEventArgs e)
{
int temp;
if (!int.TryParse(textBox1.Text, out temp))
showTip("Validation Error", (Control)sender);
}
private void showTip(string message, Control destination)
{
toolTip1.Show(message, destination);
timer1.Start();
}
}
驚いたことに、toolTip1.IsOpen = trueの場合、ツールチップが表示され、開いたままになります。私が何をしても、それが私のマシン上で自然に消えることはないので、それを閉じるためのコードを提供する必要があることに注意してください。