/// /// Copyright (c) 2013-2018 Sensus Slovensko a.s. /// using System; using System.Drawing; using System.Windows.Forms; using log4net; using TBF.Resources; namespace TBF.BenchControl.Operations { public partial class MessageBoxForm : Form { static readonly ILog log = LogManager.GetLogger(typeof(MessageBoxForm)); /// Set to 'true' when the form closes public bool Completed { get { return completed; } } bool completed; public MessageBoxForm(string message, Color backgroundColor) { InitializeComponent(); //ControlBox = false; Localize(); messageLabel.Text = message; BackColor = backgroundColor; float textWidth = Graphics.FromImage(new Bitmap(1, 1)).MeasureString(messageLabel.Text, messageLabel.Font).Width; int rqrdFormWidth = (int)textWidth + 80; /// Form width calculated from the text width if (rqrdFormWidth > Width) { int shift = (rqrdFormWidth - Width) / 2; Width = rqrdFormWidth; okButton.Left += shift; } completed = false; StartForceCloseHandler(); } void Localize() { okButton.Text = Strings.OkBtnText; } private void okButton_Click(object sender, EventArgs e) { completed = true; Close(); } private void MessageBoxForm_FormClosing(object sender, FormClosingEventArgs e) { completed = true; } #region Forced close handling /// /// Used by CoverTest, AskYesNoOp and MessageBoxOp. /// public void OnCloseThisForm(object sender, EventArgs args) { if (CloseThisFormHandler == null) return; try { CloseThisFormHandler(sender, null); } catch (Exception e) { log.Error("CloseThisFormHandler(...) failed", e); } } public event EventHandler CloseThisFormHandler; public void StartForceCloseHandler() { CloseThisFormHandler += delegate(object sender, EventArgs args) { if (InvokeRequired) Invoke(new EventHandler(OnForceClose), sender, args); else OnForceClose(sender, args); }; } private void OnForceClose(object sender, EventArgs args) { DialogResult = DialogResult.Cancel; Close(); } #endregion } }