1

我有一个 datagridview可以在文本框列中输入DataNames。我通过使用MaxInputLength. 在这里,我想一步一步地解释我的问题。1 . 我在记事本上写了双字节字符(例如1234567890)并复制。然后我到这个,右键单击然后选择。显示出123456。2 .我在记事本上写了双字节字符(例如123456)并复制它。然后我到这个,右键单击然后选择。显示123456。 所以,属性只限于输入字符长度(不关心单字节或双字节)。DataGridViewTextBoxColumn


DataGridViewTextBoxPasteDataGridViewTextBox
DataGridViewTextBoxPasteDataGridViewTextBox
MaxInputLength

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

提前致谢。

4

1 回答 1

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);
    }
}  
于 2013-02-15T07:12:15.107 回答