Richtextbox最大长度

3

我在我的Windows表单中有几个控件,即一个RichTextBox和10个按钮,它们代表数字键盘(从0到9)。当单击按钮时,它将把相应的数字插入RichTextBox中。我已将MaxLength属性设置为6,但是通过点击按钮似乎可以在文本框中插入超过6个字符。我的代码如下:

private void num1Button_Click(object sender, EventArgs e)
{
    richtextbox.Text = richtextbox.Text.Insert(0, "1");
}
3个回答

1

描述

MSDN - 获取或设置用户可以在富文本框控件中键入或粘贴的最大字符数。

因此,您需要在代码中检查长度。

示例

private void num1Button_Click(object sender, EventArgs e)
{
    if (richtextbox.Text.Length >= 6)
        return;
    richtextbox.Text = richtextbox.Text.Insert(0, "1");
}

更多信息


未处理的ArguementOutofRangeException 指定的参数超出了有效值范围。 参数名称:startIndex - aurelio
我认为它试图将“2”插入索引1,但由于该索引不存在,因此出现了错误?我该如何修复这个问题? - aurelio
如果我点击num1Button和num2Button,它通常会将值1和2插入到文本框中。但是如果我尝试使用num2Button,就会出现上述错误。 - aurelio
嗯,那我该如何修复它,以便在文本框中的前一个字符(或空字符)之后插入值? - aurelio
哦,我正在尝试模拟一个PIN设备。 - aurelio
显示剩余4条评论

0

MaxLength 只在通过键盘输入文本框时起作用。您可以使用代码更改超过 MaxLength 的文本。

因此,在更改文本时,您将不得不仔细检查此条件。

private void num1Button_Click(object sender, EventArgs e)
{
    if(richtextbox.Text.Lenght < 6)
        richtextbox.Text = richtextbox.Text.Insert(0, "1");
}

0

MaxLength指的是用户可以在框中输入的最大长度。它并不意味着开发人员可以设置的最大文本长度。您需要在插入更多字符之前检查字符串的当前长度。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接