在我的项目中,我有输入数据的文本框,例如 Name 、 Age 等。
对于名称文本,我想让它接受一定数量的 str。
年龄文本框只接受 3 个整数和某个数字的最大值,我无法添加更多。
在我的项目中,我有输入数据的文本框,例如 Name 、 Age 等。
对于名称文本,我想让它接受一定数量的 str。
年龄文本框只接受 3 个整数和某个数字的最大值,我无法添加更多。
您可以使用控件的MaxLength
属性TextBox
- 您可以直接在代码中设置,也可以从 VS 设计器的属性窗口进行配置。
http://msdn.microsoft.com/en-GB/library/system.windows.forms.textboxbase.maxlength.aspx
好吧,您应该自己尝试一下,但这里有一些提示:这串代码使文本只接受字母没有数字,没有空格转到文本名称属性,来自事件双击 KeyPress 并尝试以下操作:
private void TxtName_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar) && !char.IsLetter(e.KeyChar) && e.KeyChar != '.')
e.Handled = true;
}
这可以设置所写字母的最大大小,从文本名称属性,转到事件并双击 KeyDown 并尝试以下操作:
private void TxtName_KeyDown(object sender, KeyEventArgs e)
{
int i = TxtName.Text.Length;
if(!(e.KeyData == Keys.Back && e.KeyData == Keys.Delete))
try
{
if (TxtName.Text.Length >= 20)
{
e.SuppressKeyPress = true;
e.Handled = true;
}
}
catch { }
}
此代码设置最大值。整数值,转到 TextAge 属性,从事件中双击离开并尝试以下操作:
private void TxtAge_Leave(object sender, EventArgs e)
{
string myString = (sender as TextBox).Text;
int i = Convert.ToInt16(myString);
if (i > 150)
{
MessageBox.Show("Invalid Age");
TxtAge.Clear();
(sender as TextBox).Focus();
}
}
'For Age TextBox 将其写入 Keypress 事件
Public Sub TextBox1_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
Dim maxlen as Integer = 2 'Maximum Number Allowed
Dim key = (Microsoft.VisualBasic.Asc(e.KeyChar))
If key = 9 Or key = 8 Or (key >= 48 And key <= 57) Then
Else
e.Handled = True
Beep()
End If
If sender.TextLength >= maxlen And key <> 8 And key <> 9 Then
e.Handled = True
Beep()
End If
End Sub
'对于文本
Public Sub TextBox2_Keypress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox2.KeyPress
Dim key = (Microsoft.VisualBasic.Asc(e.KeyChar))
Dim maxlen as Integer = 10 'Maximum Allowed Text
If sender.TextLength > maxlen Then
e.Handled = True
If key = 8 Then
e.Handled = False
End If
End If
End Sub