- PR -

datagridview の入力制限について

投稿者投稿内容
ひろれい
ぬし
会議室デビュー日: 2006/03/02
投稿数: 486
お住まい・勤務地: 万博開催地
投稿日時: 2007-04-17 15:46
「CellValueChanged イベント」を調べてみてはいかがでしょう。
Ahf
大ベテラン
会議室デビュー日: 2006/08/16
投稿数: 172
投稿日時: 2007-04-17 17:08
DataGridViewのセルを継承して拡張する、という手もありますよ。
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-04-17 17:52
ぶさいくろうさんのいう「答え」が「プロパティなんぞで簡単に制限できるも
んではないんじゃ!」というのならば、確かに過去ログにそういった結論が
あった気がしますが(笑)どうでしょう。

とまあ、それはともかく。

どこまでの制御をするか、という部分も曖昧なのが混乱を招いているので
しょうね。
たとえばセルの内容を編集して、別のセルに移ろうとしたタイミングで「数
値以外は入力できません!」とメッセージでも表示して移動できなければ
それで良いのか。
はたまた、編集中に0〜9以外のキーがそもそも入力できないようにしなけ
ればいけないのか。

前者であれば、タイミング的には DataGridView.CellValidating イベン
トで検証を行えばいいかもしれませんし、後者になると
DataGridView.EditingControl プロパティの内容に細工してあげると
か、Ahf さんが書かれているようにセルを継承してなんとかする、というパ
ターンがあると思います。ただこちらはかなり難易度が高いです。

KeyPress というのは DataGridView.KeyPress イベントのことだと思
いますが、セルの編集中は DataGridView ではなく、別のコントロール
に対して編集を行っているので、DataGridView に対するキー入力関係
のイベントは呼ばれません(上に書いている EditingControl という部分
ですね)。

オヌヌメ…じゃなかった、お勧めはやはり CellValidating イベントでキャン
セルさせる方が楽です。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-04-17 17:54
ぶさいくろう元帥に補足。

"DataGridViewTextBoxEditingControl" をこの会議室で検索しましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌

スキルアップ/キャリアアップ(JOB@IT)