C# 粘贴时如何设置datagridview的最大字节长度

C# 粘贴时如何设置datagridview的最大字节长度,c#,winforms,.net-2.0,paste,maxlength,C#,Winforms,.net 2.0,Paste,Maxlength,我有一个datagridview,其中可以在文本框列中输入DataNames。我使用DataGridViewTextBoxColumn的MaxInputLength属性将此列的输入长度限制为6个字符 在这里,我想一步一步地解释我的问题。 1。我写了双字节字符(例如。1234567890) 然后我转到这个DataGridViewTextBox,右键单击,然后选择Paste。DataGridViewTextBox显示123456. 2。我写了双字节字符(例如。123456) 然后我转到这个DataG

我有一个datagridview,其中可以在文本框列中输入DataNames。我使用
DataGridViewTextBoxColumn
MaxInputLength
属性将此列的输入长度限制为6个字符 在这里,我想一步一步地解释我的问题。
1。我写了双字节字符(例如。1234567890) 然后我转到这个
DataGridViewTextBox
,右键单击,然后选择
Paste
DataGridViewTextBox
显示123456.
2。我写了双字节字符(例如。123456) 然后我转到这个
DataGridViewTextBox
,右键单击,然后选择
Paste
DataGridViewTextBox
显示123456.
因此,
MaxInputLength
属性仅限制输入字符长度(不考虑单字节或双字节)。

我只想展示一下123(6字节)。
是否有属性或方法限制字节字符长度,尤其是在粘贴操作中?


提前谢谢。

我想你可以在文本更改窗口中处理它

比如:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    var textBytes = Encoding.UTF8.GetBytes(textBox1.Text);
    var textByteCount = Encoding.UTF8.GetByteCount(textBox1.Text);
    var textCharCount = Encoding.UTF8.GetCharCount(textBytes);

    if (textCharCount != textByteCount && textByteCount >= 12)
    {
        textBox1.Text = Encoding.UTF32.GetString(Encoding.UTF32.GetBytes(textBox1.Text), 0, 12);
    }
    else if (textBox1.Text.Length >= 6)
    {
        textBox1.Text = textBox1.Text.Substring(0, 6);
    }
}  

所以您不希望MaxInputLength为6,但只允许文本框中有6个字节的数据?是的,我想限制最大输入字节长度。有一个答案->“System.Array”不包含“Take”的定义,并且找不到接受“System.Array”类型的第一个参数的扩展方法“Take”(您是否缺少using指令或程序集引用?)您需要使用
System.Linq;
添加,我更新了答案,如果是双字符或单字符,则返回6个字节,谢谢,但我的解决方案必须基于.net 2.0。因此,我无法使用System.Linq