DataGridViewの入力制限に関して

解決


misamisa  2012-04-03 11:52:12  No: 147541  IP: 192.*.*.*

DataGridviewに関して教えて下さい。

DataGridviewにハンドで入力を行うような事をしていますが、入力の際、
テキストボックスのようにUpper制限をかけて、半角の大文字になるような事を
したいと考えていますが、何か方法はありますでしょうか?

特に指定の列だけをそのような制限をかけたいと考えています。

初歩的な質問で申し訳ありませんが、教えて下さい。

編集 削除
魔界の仮面弁士  2012-04-03 14:42:38  No: 147542  IP: 192.*.*.*

> テキストボックスのようにUpper制限をかけて
テキストボックスでの制限のかけ方は御存知ということでしょうか?

入力欄はただの TextBox なので、それと同じ手法が使えるはずです。
http://dobon.net/vb/dotnet/datagridview/editingcontrol.html
http://dobon.net/vb/dotnet/datagridview/editingcontrol.html

編集 削除
misamisa  2012-04-03 15:16:59  No: 147543  IP: 192.*.*.*

魔界の仮面弁士様、ご回答ありがとうございます。

申し訳ありません。  フォーム上のテキストボックスの制限のかけ方は、
プロパティでUpperとするしか方法をしりません、、、

ネットで調べた限りでは、

  e.KeyChar = Char.ToUpper(e.KeyChar)

とありましたが、これはEditingControlShowingでは使えず、、、

それも含めて教えて頂ければ幸いです。

よろしくお願いします。

編集 削除
魔界の仮面弁士  2012-04-04 15:29:01  No: 147544  IP: 192.*.*.*

> フォーム上のテキストボックスの制限のかけ方は、
> プロパティでUpperとするしか方法をしりません、、、
TextBox.CharacterCasing プロパティの事ですか?

対象のセルがテキストボックスタイプなのであれば、
それをそのまま使えば良いと思いますよ。

DataGridViewTextBoxCell を編集する場合、DataGridView クラスの
EditingControl プロパティや、EditingControlShowing イベントの
e.Control は、「DataGridViewTextBoxEditingControl」という
TextBox の派生クラスを返します。

Control 型からのキャストは必要ですが、それ自体は TextBox の
一種であるため、TextBox.CharacterCasing も問題無く利用できます。


> これはEditingControlShowingでは使えず、、、
それはイベントを利用した方法ですよね。
イベントにしてもCharacterCasing プロパティにしても、
TextBox が持っている機能は、そのまま使えますよ。

編集 削除
misamisa  2012-04-09 17:25:51  No: 147545  IP: 192.*.*.*

魔界の仮面弁士様、返事が遅くなりまして申し訳ありません。

教えて頂いたように記述したところ、なんとか解決する事ができました!

ありがとうございました。

編集 削除