using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace BizHawk.Client.EmuHawk { public partial class ExceptionBox : Form { public ExceptionBox(Exception ex) { InitializeComponent(); txtException.Text = ex.ToString(); timer1.Start(); } public ExceptionBox(string str) { InitializeComponent(); txtException.Text = str; timer1.Start(); } private void btnCopy_Click(object sender, EventArgs e) { DoCopy(); } void DoCopy() { string txt = txtException.Text; Clipboard.SetText(txt); try { if (Clipboard.GetText() == txt) { lblDone.Text = "Done!"; lblDone.ForeColor = SystemColors.ControlText; return; } } catch { } lblDone.Text = "ERROR!"; lblDone.ForeColor = SystemColors.ControlText; } protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (keyData == (Keys.C | Keys.Control)) { DoCopy(); return true; } return false; } private void btnOK_Click(object sender, EventArgs e) { Close(); } private void timer1_Tick(object sender, EventArgs e) { int a = lblDone.ForeColor.A - 16; if (a < 0) a = 0; lblDone.ForeColor = Color.FromArgb(a, lblDone.ForeColor); } //http://stackoverflow.com/questions/2636065/alpha-in-forecolor class MyLabel : Label { protected override void OnPaint(PaintEventArgs e) { Rectangle rc = this.ClientRectangle; StringFormat fmt = new StringFormat(StringFormat.GenericTypographic); using (var br = new SolidBrush(this.ForeColor)) { e.Graphics.DrawString(this.Text, this.Font, br, rc, fmt); } } } } }