C#AndroidのようなToastを実現
4329 ワード
public partial class ToastForm : Form
{
/// <summary>
///
/// </summary>
private int _wait_ms = 1000;
public ToastForm(double seconds, string text, Form parent)
: this(seconds, text, parent, Color.Blue, 15, ContentAlignment.TopCenter)
{
}
public ToastForm(double seconds, string text, Form parent, int font_size)
: this(seconds, text, parent, Color.Blue, font_size, ContentAlignment.TopCenter)
{
}
public ToastForm(double seconds, string text, Form parent, Color text_color, int font_size, ContentAlignment textAlignment)
{
InitializeComponent();
_wait_ms = (int)(seconds * 1000);
if (font_size != lbShow.Font.Size) lbShow.Font = new Font(lbShow.Font.Name, font_size, lbShow.Font.Style);
lbShow.Text = text;
if (lbShow.TextAlign != textAlignment) lbShow.TextAlign = textAlignment;
this.lbShow.ForeColor = text_color;
this.Left = parent.Left + (parent.Width - this.Width) / 2;
this.Top = parent.Top + (parent.Height - this.Height) / 2;
}
private void ToastForm_Load(object sender, EventArgs e)
{
Thread t = new Thread((ThreadStart)delegate
{
Thread.Sleep(_wait_ms);
try
{
this.Invoke(new EventHandler((s1, e1) => this.Close()));
}
catch
{
}
});
t.IsBackground = true;
t.Start();
}
}