|
分類:[C#]
VSバージョン:Express 2015 .NET Framework:4.5.2
DataGridViewのDataGridViewTextBoxColumn列のセルが数値の時、 編集モードのマウスホイール操作にて数値のインクリメント/デクリメントをしたいと思ってます。
DataGridViewTextBoxEditingControlにMouseWheelイベントを登録すれば、 マウスホイール操作時にイベントが発生すると思ったのですが上がってきません。
グリッドはスクロール表示する場合もあるので、ScrollBarsプロパティはBothになっており、 編集モード時のマウスホイール操作は、グリッドのスクロールバーが移動します。 (グリッドのMouseWheelイベントが発生します。)
DataGridViewTextBoxEditingControlにMouseWheelイベントを発生させるのには、 どうしたらよろしいでしょうか?ご教授お願い致します。
以下、サンプルコード ※イベント確認のためのコードとなってます。
private DataGridViewTextBoxEditingControl dgvTextEdit = null;
private void dgv_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { if (e.Control is DataGridViewTextBoxEditingControl) { if (dgv.CurrentCell.OwningColumn.Name == clmText.Name) { dgvTextEdit = (DataGridViewTextBoxEditingControl)e.Control; dgvTextEdit.MouseWheel += DgvTextEdit_MouseWheel; } } }
private void DgvTextEdit_MouseWheel(object sender, MouseEventArgs e) { int delta = e.Delta; }
private void dgv_CellEndEdit(object sender, DataGridViewCellEventArgs e) { if (dgvTextEdit != null) { dgvTextEdit.MouseWheel -= new MouseEventHandler(DgvTextEdit_MouseWheel); dgvTextEdit = null; } }
|