我的表单包含几个具有两列的DataGridView控件。我希望用户在第1列中键入的数据转换为大写。第0列中的数据是只读的,由我的程序填充。它是数字,不需要转换为大写。下面的代码有效,但我想知道是否有更好的方法。
private: System::Void dataGridView_patterns_EditingControlShowing(System::Object^ sender, System::Windows::Forms::DataGridViewEditingControlShowingEventArgs^ e)
{
// This event sets the character casing to upper for the patterns. It is called once per pattern.
TextBox^ myControl;
myControl = (TextBox^)(e->Control);
myControl->CharacterCasing = CharacterCasing::Upper;
}
我对此代码唯一的问题是,对于DataGridView中的每一行,都会调用一次EditingControlShowing事件。有没有办法将CharacterCasing设置为Upper一次用于控件,还是必须设置为每一行都能正常工作?我没有注意到任何性能问题,但似乎没有必要为控件中的每一行设置外壳。
谢谢!
答案 0 :(得分:1)
您可以创建此处显示的自定义DataGridTextBoxColumn
:
How to set DataGridView columns text format to uppercase by adding new property?
答案 1 :(得分:1)
为了关闭这个帖子,我在原始问题中使用了代码。我想这是在DataGridView控件中设置外壳的最简单方法。