我有一个datagridview,可以在文本框列中输入 DataNames 。我使用MaxInputLength
将此列的输入长度限制为6个字符DataGridViewTextBoxColumn
的属性。
在这里,我想逐步解释我的问题
的 1 即可。我在记事本上写了双字节字符(例如1234567890)并将其复制。然后我转到此DataGridViewTextBox
,右键单击然后选择Paste
。DataGridViewTextBox
显示123456.
2 。我在记事本上写了双字节字符(例如,123456)并将其复制。然后我转到此DataGridViewTextBox
,右键单击,然后选择Paste
。{ {1}}显示123456.
因此,DataGridViewTextBox
属性仅限于输入字符长度( 不关心单字节或双字节 )。
我想只显示123(6个字节)。
是否存在限制字节字符长度的属性或方法,特别是在粘贴操作中?
提前致谢。
答案 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);
}
}