using System;
using System.Windows.Forms;
namespace DataStreamInterfaceTest
{
public partial class GetIntegerNumberDlg : Form
{
///
/// Integer number entered in this form
///
public int Number;
int lowerLimit;
int upperLimit;
///
/// Default constructor
///
public GetIntegerNumberDlg()
: this("Enter integer number please")
{
}
///
/// Constructor with a custom window title.
///
/// Window title
public GetIntegerNumberDlg(string title)
: this(title, Int32.MinValue, Int32.MaxValue)
{
}
///
/// Constructor with a custom window title, limits and non-empty initial value.
///
/// Window title
/// Lower limit
/// Upper limit
/// Initial value
public GetIntegerNumberDlg(string title, int lowerLimit, int upperLimit, int initialValue)
: this(title, lowerLimit, upperLimit)
{
numberTextBox.Text = initialValue.ToString();
}
///
/// Constructor with a custom window title and lower/upper limits.
///
/// Window title
/// Lower limit
/// Upper limit
public GetIntegerNumberDlg(string title, int lowerLimit, int upperLimit)
{
InitializeComponent();
this.Text = title;
this.lowerLimit = lowerLimit;
this.upperLimit = upperLimit;
}
///
/// OK button handler that verifies validity of the entered value.
///
private void okButton_Click(object sender, EventArgs e)
{
int number;
if (int.TryParse(numberTextBox.Text, out number) && number >= lowerLimit && number <= upperLimit)
{
Number = number;
DialogResult = DialogResult.OK;
}
else
{
string message = (lowerLimit != Int32.MinValue || upperLimit != Int32.MaxValue)
? string.Format("Invalid integer number ({0}..{1})", lowerLimit, upperLimit)
: "Invalid integer number";
MessageBox.Show(message);
DialogResult = DialogResult.None; /// Prevent closing this window
}
}
}
}