实现一个只能输入某范围内整数的文本框 本代码实现了端口的输入
代码如下:
public class PortBox:System.Windows.Forms.TextBox
{
/// <summary>
/// 最大端口
/// </summary>
public int MaxValue
{
get;
set;
}
/// <summary>
/// 最小端口
/// </summary>
public int MinValue
{
get;
set;
}
String oldString;
protected override void OnTextChanged(EventArgs e)
{
base.OnTextChanged(e);
try
{
if(String.IsNullOrEmpty(Text))
{
oldString = String.Empty;
return;
}
int port = Convert.ToInt32(Text);
if (port > MaxValue)
{
Text = MaxValue.ToString();
SelectAll();
}
if (port < MinValue)
{
Text = MinValue.ToString();
SelectAll();
}
oldString = Text;
}
catch
{
int Index = SelectionStart;
Text = oldString;
if (Index > 0)
{
SelectionStart = Index - 1;
}
else
{
SelectionStart = 0;
}
}
}
}