我希望能够将指定列的 CharacterCasing 设置为大写。
我在任何地方都找不到将字符转换为大写字母的解决方案在输入时。
非常感谢您的帮助
最佳答案
您需要使用 Datagridview 的 EditingControlShowing 事件来编辑列中任何单元格的内容。使用此事件,您可以在特定单元格中触发按键事件。在按键事件中,您可以强制执行一个自动将小写字母转换为大写字母的规则。
实现的步骤如下:
在 EditingControlShowing 事件中查看用户是否在您要强制执行此规则的列中。假设您的列是网格中的第二列
private void TestDataGridView_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if(TestDataGridView.CurrentCell.ColumnIndex.Equals(1))
{
e.Control.KeyPress += Control_KeyPress; // Depending on your requirement you can register any key event for this.
}
}
private static void Control_KeyPress(object sender, KeyPressEventArgs e)
{
// Write your logic to convert the letter to uppercase
}
如果要在列中设置文本框控件的CharacterCasing
属性,那么可以在上面代码中的KeyPress
事件注册处进行,即位于检查列索引的“if” block 中。在这种情况下,您可以避免 KeyPress 事件。
这可以通过以下方式完成:
if(e.Control is TextBox)
{
((TextBox) (e.Control)).CharacterCasing = CharacterCasing.Upper;
}
关于c# 如何在 DataGridView 的特定列中强制使用大写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3178284/