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

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

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

C# CellValidatingイベントについて

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■91225 / inTopicNo.1)  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の値が更新できるようにするための方法について教えてください。
引用返信 編集キー/
■91226 / inTopicNo.2)  Re[1]: C# CellValidatingイベントについて
□投稿者/ Hongliang (820回)-(2019/06/06(Thu) 16:14:03)
今一つ全体が読み取れませんが、CellValidatingイベントの代わりにCellEndEditイベントを使用するのはどうでしょうか。
引用返信 編集キー/
■91229 / inTopicNo.3)  Re[2]: C# CellValidatingイベントについて
□投稿者/ su (3回)-(2019/06/07(Fri) 10:12:38)
No91226 (Hongliang さん) に返信
> 今一つ全体が読み取れませんが、CellValidatingイベントの代わりにCellEndEditイベントを使用するのはどうでしょうか。

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



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

KeyPressイベントでEnterキー押下を補足することもできませんでした。
引用返信 編集キー/
■91231 / inTopicNo.5)  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で取得)。

引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ