
初めて投稿します。
C#のwindowsアプリを開発しています。
開発ツールはVS2010を使用しています。
datagridview内の制御について困っているので
知恵を貸してください。
datagridviewのEditModeをEditOnEnterに設定し、常に入力モードにしています。
また、CellValidatingを使用し、各セルの必須チェックなどのエラーチェックを
おこなっています。
Enterキー押下でCellValidatingイベントが発生し、エラーチェックを行う
ことには問題ないのですが、矢印キーやマウスでのセル移動時にも、
CellValidatingイベントが発生します。
矢印キーやマウスでの操作の場合はCellValidatingイベントを発生させずに
したいのですが、どうすればよいのでしょうか?
知っている方がいれば、知恵を貸してください。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
//変更がなければ何もしない
if (e.FormattedValue == dataGridView1[e.RowIndex, e.ColumnIndex].FormattedValue)
return;
}
この回答への補足
ありがとうございます。
上記の方法でためしてみましたが、今度は、
空白のセルでEnterキーを押下したときにエラーが
発生しませんでした。
Enterキーではエラーチェックを行い、エラーがあればフォーカスを移動させない。
矢印キーではエラーのチェックを行わず、自由にセル内の移動が行えるようにしたいのです。
不可能なのでしょうか?
No.1
- 回答日時:
CellValueChangedイベントで処理を行ってはどうでしょう?
この回答への補足
ありがとうございます。
CellValueChangedも考えたのですが、いくつか問題があり断念しました。
たとえば、空白のセルにフォーカスがあった状態で、
Enterキーを押下すると、空白はエラーにしないといけないのです。
CellValueChangedイベントだと、セルの内容が変わっていないので、
エラーにならないのです。
また、CellValidatingを選んだのは、エラーが発生した場合、e.Cancel = true
を使用し、フォーカスを遷移させないようにするためです。
Enterキーを押下したときは、エラーチェックを行い、
矢印キーやマウス操作の場合はエラーチェックを行わないようにしたいのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) 表内で、Enterキーで横→行の最後入力したら次の行の先頭に移動するマクロを作りたい 3 2022/05/01 21:19
- Windows 10 エクスプローラで希望の場所が表示できない 2 2023/06/29 15:19
- その他(プログラミング・Web制作) ラズパイ上の、pythonのエラーについて 1 2023/04/12 23:27
- C言語・C++・C# C# DatagridviewにExcelシートを反映するとエラーが出る 2 2023/05/06 17:12
- Excel(エクセル) MacのExcelでoptionキーを押したまま図形や画像を移動させると、複製されてしまう 2 2022/06/14 16:19
- Windows 95・98 Windows11にバージョン アップしました。 2 2023/07/21 18:36
- Windows 10 パソコンの起動時、画面が黒いままのトラブルにつきまして。 4 2022/10/02 18:02
- Windows 10 フォルダ内の全ての画像を矢印キーでスライドできるようにしたい 1 2022/10/21 12:53
- Word(ワード) IMEパッドがショートカットキーで開かないのですが。。。 5 2023/06/11 09:23
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【C#, xaml】TypeInitializatio...
-
VB.net 任意の例外を発生させ...
-
ASP.NET2.0 GridViewコントロール
-
アルディーノ初心者です。 以下...
-
【VBA】写真の縦横比を変えずに...
-
常に「すべての列のサイズを自...
-
Not kind:Folders
-
ファイル並び順がバラバラで困...
-
javaのインストール方法が分か...
-
シャットダウン時に自動ファイ...
-
windows用フォントをmac用に変...
-
OSX10.3のディスク容量について
-
検索したファイルの場所を調べ...
-
ファイルのネーミングの仕方に...
-
コマンドプロンプトでファイル...
-
Cドライブにconfig msiというフ...
-
Excelファイルをダブルクリック...
-
ウインドウが開きません
-
ローカルポリシー
-
エクセルの数式で教えてください。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net 任意の例外を発生させ...
-
【C#, xaml】TypeInitializatio...
-
strtoint関数について
-
【VB 6.0】参照設定でエラーが...
-
C# DataGridView内での制御につ...
-
VB.net 画面のハ-ドコピーでエ...
-
TreeGridView(オープンソース)...
-
C# WINDOWS フォルダー右クリッ...
-
アルディーノ初心者です。 以下...
-
【緊急】Googleウェブマスター...
-
知恵袋で「予期せぬエラーが発...
-
CGIエラーについて
-
エクセルの行の幅を変更するVBA
-
【VBA】写真の縦横比を変えずに...
-
常に「すべての列のサイズを自...
-
Not kind:Folders
-
検索したファイルの場所を調べ...
-
タスクスケジューラで指定フォ...
-
ファイル並び順がバラバラで困...
-
Ububtuでファイル共有できない...
おすすめ情報