I have a custom MessageBox that displays at the bottom right of the screen, but when the message is a bit long it doesn't display in full.
I've read several solutions here, but these allow manual line breaks by modifying the message itself.
However, I have several messages (Info, Alert, Error, etc.) and I'm looking for a solution so that the messages aren't cut off and are automatically rewound without changing each message.
Here is the code for the customized messageBox:
public void showAlert(string msg, enmType type)
{
this.Opacity = 0.0;
this.StartPosition = FormStartPosition.Manual;
string fname;
for (int i = 1; i < 10; i++)
{
fname = "alert" + i.ToString();
Form_Alert frm = (Form_Alert)Application.OpenForms[fname];
if (frm == null)
{
this.Name = fname;
this.x = Screen.PrimaryScreen.WorkingArea.Width - this.Width + 15;
this.y = Screen.PrimaryScreen.WorkingArea.Height - this.Height * i - 5 * i;
this.Location = new Point(this.x, this.y);
break;
}
}
this.x = Screen.PrimaryScreen.WorkingArea.Width - base.Width - 5;
switch(type)
{
case enmType.Success:
this.pictureBox1.Image = Resources.success;
this.BackColor = Color.SeaGreen;
break;
case enmType.Error:
this.pictureBox1.Image = Resources.error;
this.BackColor = Color.DarkRed;
break;
case enmType.Info:
this.pictureBox1.Image = Resources.info;
this.BackColor = Color.RoyalBlue;
break;
case enmType.Warning:
this.pictureBox1.Image = Resources.warning;
this.BackColor = Color.DarkOrange;
break;
}
this.lblMsg.Text = msg;
this.Show();
this.action = enmAction.start;
this.timer1.Interval = 1;
this.timer1.Start();
}
I've tried "\n" and "Environment.NewLine" in the message itself, but I want the line break to be automatic.