Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Richtextbox最大长度_C#_Winforms - Fatal编程技术网

C# Richtextbox最大长度

C# Richtextbox最大长度,c#,winforms,C#,Winforms,我的windows窗体中有几个控件,即一个Richtextbox和10个表示numpad(从0到9)的按钮。单击按钮时,它会将相应的数字插入Richtextbox。我已经将MaxLength属性设置为6,但是通过点击按钮,我似乎能够在文本框中插入超过6个字符。我的代码如下: private void num1Button_Click(object sender, EventArgs e) { richtextbox.Text = richtextbox.Text.Insert(0, "1

我的windows窗体中有几个控件,即一个Richtextbox和10个表示numpad(从0到9)的按钮。单击按钮时,它会将相应的数字插入Richtextbox。我已经将MaxLength属性设置为6,但是通过点击按钮,我似乎能够在文本框中插入超过6个字符。我的代码如下:

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

只有当enter将键盘放入文本框时,MaxLength才起作用。您可以使用代码隐藏更改超过MaxLength的文本

因此,在更改文本时,必须再次检查此条件

private void num1Button_Click(object sender, EventArgs e)
{
    if(richtextbox.Text.Lenght < 6)
        richtextbox.Text = richtextbox.Text.Insert(0, "1");
}
private void num1按钮\u单击(对象发送者,事件参数e)
{
如果(richtextbox.Text.Lenght<6)
richtextbox.Text=richtextbox.Text.Insert(0,“1”);
}

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

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

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

样品 更多信息

谢谢,不过我现在还有一个问题。我已将num2Button单击设置为“richtextbox.Text=richtextbox.Text.Insert(1,“2”);”但当我尝试单击num2Button时,出现错误。ArguementOutofRangeException未处理指定的arguement超出有效值的范围。参数名称:startindex我想它试图将“2”插入到索引1中,但由于它不存在,因此出现了错误?如何解决此问题?不,如果框为空,则不能在位置1(第一个参数)上插入。如果我点击num1Button和num2Button,则会将值1和2正常插入文本框。但是如果我尝试num2Button,上面的错误就会出现。
private void num1Button_Click(object sender, EventArgs e)
{
    if (richtextbox.Text.Length >= 6)
        return;
    richtextbox.Text = richtextbox.Text.Insert(0, "1");
}