C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

C# CellValidatingイベントについて /su (19/06/06(Thu) 16:00) #91225
Re[1]: C# CellValidatingイベントについて /Hongliang (19/06/06(Thu) 16:14) #91226
  └ Re[2]: C# CellValidatingイベントについて /su (19/06/07(Fri) 10:12) #91229
    └ Re[3]: C# CellValidatingイベントについて /su (19/06/07(Fri) 10:26) #91230
      └ Re[4]: C# CellValidatingイベントについて /みい (19/06/07(Fri) 11:13) #91231


親記事 / ▼[ 91226 ]
■91225 / 親階層)  C# CellValidatingイベントについて
□投稿者/ su (1回)-(2019/06/06(Thu) 16:00:45)

分類:[.NET 全般] 

Visual Studio Express 2015 for Windows Desktopを使用しています。
言語はC#です。

DataGridViewに「入力も可能なComboBoxの列」を作るため、
セルへのキー入力後はCellValidatingイベントにてセルとComboBoxに入力文字列を追加しています。
しかし、最終行についてはCellValidatingイベントが走らないようです。
最終行編集時でも、セルとComboBoxの値が更新できるようにするための方法について教えてください。
[ □ Tree ] 返信 編集キー/

▲[ 91225 ] / ▼[ 91229 ]
■91226 / 1階層)  Re[1]: C# CellValidatingイベントについて
□投稿者/ Hongliang (820回)-(2019/06/06(Thu) 16:14:03)
今一つ全体が読み取れませんが、CellValidatingイベントの代わりにCellEndEditイベントを使用するのはどうでしょうか。
[ 親 91225 / □ Tree ] 返信 編集キー/

▲[ 91226 ] / ▼[ 91230 ]
■91229 / 2階層)  Re[2]: C# CellValidatingイベントについて
□投稿者/ su (3回)-(2019/06/07(Fri) 10:12:38)
No91226 (Hongliang さん) に返信
> 今一つ全体が読み取れませんが、CellValidatingイベントの代わりにCellEndEditイベントを使用するのはどうでしょうか。

コメントありがとうございます。
CellEndEditイベントを使用してみましたが、DataGridViewの特定のセルに値を入力しても、Enterキー押下時に元に戻ってしまいました。



[ 親 91225 / □ Tree ] 返信 編集キー/

▲[ 91229 ] / ▼[ 91231 ]
■91230 / 3階層)  Re[3]: C# CellValidatingイベントについて
□投稿者/ su (5回)-(2019/06/07(Fri) 10:26:38)
補足です。
以下のサイトを参考にし、DataGridViewに「入力も可能なComboBoxの列」を作成しましたが
最終行のComboBoxに限り、CellValidatingイベントが走らないようで、キー入力後Enterキーを押下しても
入力した内容が反映されない、という状態です。

KeyPressイベントでEnterキー押下を補足することもできませんでした。
[ 親 91225 / □ Tree ] 返信 編集キー/

▲[ 91230 ] / 返信無し
■91231 / 4階層)  Re[4]: C# CellValidatingイベントについて
□投稿者/ みい (96回)-(2019/06/07(Fri) 11:13:38)
2019/06/07(Fri) 11:36:46 編集(投稿者)

No91230 (su さん) に返信
> 補足です。
> 以下のサイトを参考にし、DataGridViewに「入力も可能なComboBoxの列」を作成しましたが
> 最終行のComboBoxに限り、CellValidatingイベントが走らないようで、キー入力後Enterキーを押下しても
> 入力した内容が反映されない、という状態です。
>
> KeyPressイベントでEnterキー押下を補足することもできませんでした。
セル編集中のEnterキー押下はPreviewKeyDownイベントで捕捉できるようです。

https://dobon.net/vb/bbs/log3-36/22210.html

CellValidatingイベントは「セルが入力フォーカスを失う時に発生」するイベントです。
そのため最終行の場合はEnterを押しても下の行がなくフォーカスが移らないため、
イベントは発生しません。
キーやマウス操作で他のセルにフォーカスが移った時にイベントが発生します。

私の場合はEditingControlShowingで取得した編集コントロールを保持しておいて
CellEndEditイベントでコンボボックス列かつ最終行であればという条件で
CellValidatingイベントと同様の処理を記述しています
(入力文字列は保持しておいた編集コントロールのTextで取得)。

[ 親 91225 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -