如何设置datagridview的时候贴的最大字节长度(How to set max byte le

2019-09-30 05:24发布

我有其中DataNames可以在文本框column.I通过使用限制此列的输入长度为6个字符输入一个DataGridView MaxInputLength所述的属性DataGridViewTextBoxColumn

在这里,我想解释一下我的问题,一步一步来。
1。 我在记事本中写道双字节字符(eg.1234567890)和复制it.Then我去的这DataGridViewTextBox ,点击右键,然后选用Paste .The DataGridViewTextBox显示123456。
2。我在记事本中写道双字节字符(eg.123456)和复制it.Then我去的这DataGridViewTextBox ,点击右键,然后选用Paste .The DataGridViewTextBox显示123456。
所以, MaxInputLength属性仅限制于输入字符长度( 不关心单字节或双字节 )。

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

提前致谢。

Answer 1:

我想你可以只处理它在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);
    }
}  


文章来源: How to set max byte length of datagridview when paste