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

时间:2013-02-15 04:56:08

标签: c# winforms .net-2.0 paste maxlength

我有一个datagridview,可以在文本框列中输入 DataNames 。我使用MaxInputLength将此列的输入长度限制为6个字符DataGridViewTextBoxColumn的属性。

在这里,我想逐步解释我的问题 的 1 即可。我在记事本上写了双字节字符(例如1234567890)并将其复制。然后我转到此DataGridViewTextBox,右键单击然后选择PasteDataGridViewTextBox显示123456.
2 。我在记事本上写了双字节字符(例如,123456)并将其复制。然后我转到此DataGridViewTextBox,右键单击,然后选择Paste。{ {1}}显示123456.
因此,DataGridViewTextBox属性仅限于输入字符长度( 不关心单字节或双字节 )。

 我想只显示123(6个字节)。
是否存在限制字节字符长度的属性或方法,特别是在粘贴操作中?

提前致谢。

1 个答案:

答案 0 :(得分:2)

我猜你可以在TextChangedEvent

中处理它

类似的东西:

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);
    }
}