.NET 2008 winformsで作業しています。DataGridViewから別のコントロールにオブジェクトをドラッグアンドドロップしようとしています。そこで、OnMouseDownイベントハンドラをオーバーライドする必要がありました。そこにチェックボックスがあるので、状態は決して変更されません。ここに私のオーバーライドされたメソッドDataGridViewのOnMouseDownをオーバーライドすると、親メソッドを呼び出すときにもチェックボックスが無効になります。
public class SeriesGrid : DataGridView
{
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
DataGridViewSelectedRowCollection selectedRows = this.SelectedRows;
if (selectedRows.Count == 0) return;
List<AppDataSeries> toDrag = new List<AppDataSeries>();
for (int i = 0; i < selectedRows.Count; i++)
{
toDrag.Add((AppDataSeries)selectedRows[i].DataBoundItem);
}
this.DoDragDrop(toDrag, DragDropEffects.Copy);
}
}
DoDragDrop関数が問題を引き起こしているように見えるのです、私はそれを削除する場合は、チェックボックスが正常に動作するので、しかし、私は何が他の制御
で任意のヘルプを落とすために得ることはありませんか?
(クリックでいくつかのUIの不具合を避けるために
cancelDrag
を含めるように編集しましたか)? –ほとんどのセルはチェックボックスです – mustafabar
DataGridViewCheckBoxCell – mustafabar