DOBON.NETプログラミング道掲示板

ツリー一括表示

Nomalアイコン DataGridView内でコンボボックスの選択をキャンセルする方法 /べが (18/02/15(Thu) 15:34) #33816
Nomalアイコン Re[1]: DataGridView内でコンボボックスの選択をキャンセルする方法 /べが (18/02/16(Fri) 14:47) #33817 解決み!


親記事 / ▼[ 33817 ]
■33816 / 親階層)  DataGridView内でコンボボックスの選択をキャンセルする方法
□投稿者/ べが 一般人(9回)-(2018/02/15(Thu) 15:34:35)
  • アイコン環境/言語:[Windows10 C#] 
    分類:[.NET] 

    C#でDataGridの2つの列にコンボボックスを置き、それぞれ1月〜12月が選択できるようにしています。
    片方のコンボボックスで月を選択し、もう一方のコンボボックスでも月を選択した際、同じ月が選択されていたらメッセージを出し、
    後から選択した方の選択をキャンセルして選択前の状態に戻したいのですが、うまくいきません。

    方法としては、GotFocusイベント時にそれぞれのコンボボックスの選択状態を文字列型に保持しておき、
    SelectedIndexChangedイベント時に選択状態を比較し、同じだったらCells.Value値に保持しておいた文字列を設定して元に戻す、というものです。
    (GotFocusイベント時の文字列保持は、フラグを使ってSelectedIndexChangedイベント完了まで再び行わないようにしてあります。)

    上記の方法で、思惑通り同じ月を選択した時にCells.Value値に保持しておいた前の文字列を設定する事はできたのですが、
    実際には選択状態がキャンセルされず、同じ月が選択されたままの状態になっています。
    (GotFocusで文字列が上書きされたわけではなく、Cells.Value値に固定で違う月を設定しても反映されません。)

    Cells.Value値に文字列で設定すること自体が間違いなのか、SelectedIndexChangedイベントより後に動く別のイベントで設定しないといけないのか、調べても分からず困っております。ご教授の程、よろしくお願い致します。



違反を報告
[ □ Tree ] 返信 削除キー/

▲[ 33816 ] / 返信無し
■33817 / 1階層)  Re[1]: DataGridView内でコンボボックスの選択をキャンセルする方法
□投稿者/ べが 一般人(11回)-(2018/02/16(Fri) 14:47:25)
  • アイコンすみません、自己解決しました。

    Cells.Value値に文字列を設定した際、実際にはちゃんと設定されていたのですが
    画面上の表示が更新されておらず、DataGridView.RefreshEditメソッドを実行したら
    更新しました。
解決み!
違反を報告
[ 親 33816 / □ Tree ] 返信 削除キー/


Mode/  Pass/


- Child Tree -