Я задал вопрос, тесно связанный с этим некоторое время назад:
Альтернативный способ уведомления пользователя об ошибке
Короче говоря, я пытался найти быстрый и простой способ уведомлять пользователя об ошибках без использования всплывающих окон.
Теперь я реализовал это, используя всплывающие подсказки. Проблема в том, что, даже если я задаю его общее местоположение, маленькая заостренная часть пузырька меняет положение в зависимости от размера сообщения (см. Прикрепленное изображение). Обычно я бы использовал SetToolTip () и назначил ему элемент управления, чтобы он всегда указывал на этот элемент управления. Однако элемент управления представляет собой метку или изображение в строке состояния.
private void ShowTooltipBalloon(string title, string msg)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new EventHandler(delegate { ShowTooltipBalloon(title,msg); }));
}
else
{
ToolTip tt = new ToolTip();
tt.IsBalloon = true;
tt.ToolTipIcon = ToolTipIcon.Warning;
tt.ShowAlways = true;
tt.BackColor = Color.FromArgb(0xFF, 0xFF, 0x90);
tt.ToolTipTitle = title;
int x = this.Width - lblLeftTarget.Width - lblVersion.Width - toolStripStatusLabel8.Width - 10;
int y = this.Height - lblLeftConnectImg.Height - 60;
tt.Show(msg, this, x, y, 5000);
}
}
Это очень выходит за рамки требований, но мой начальник очень любит детали, поэтому в дополнение к решению этой проблемы я должен решить ее быстро. Мне нужно что-то относительно простое для реализации, которое не «раскачивает лодку» текущего программного обеспечения, которое я близок к выпуску.
При этом, конечно, я выслушаю любой совет, независимо от того, осуществим он или нет. По крайней мере, я мог бы чему-то научиться.
* РЕДАКТИРОВАТЬ: Кажется, мое изображение не отображается. Я не знаю, просто ли это мой компьютер. Ну да ладно ...