- PR -

DataGridViewスクロールバーのContextMenu

投稿者投稿内容
ガルマ・ザビ
ベテラン
会議室デビュー日: 2007/06/07
投稿数: 55
お住まい・勤務地: ジオン公国
投稿日時: 2008-02-28 10:16
ScrollBarのMouseDownイベントはEditorBrowsable属性でインテリセンスに
出てこないようになっているだけなので
リフレクションで取得しなくても、以下でいけました。

コード:


VScrollBar vScrBar = (VScrollBar)this.dataGridView1.Controls[1];
vScrBar.MouseDown
+= new MouseEventHandler(this.Dgv_VScrBar_MouseDownHook);

private void Dgview_VScrBar_MouseDownHook(object sender, MouseEventArgs e)
{
VScrollBar vScrBar = (VScrollBar)sender;
vScrBar.DoDragDrop(vScrBar, DragDropEffects.None);
}





試してみたら、上記だけだとマウスポインタがドロップ禁止のアイコンに変わってしまうので、
さらに次を追加。

コード:


vScrBar.QueryContinueDrag
+= new QueryContinueDragEventHandler(this.Dgv_VScrBar_QcdHook);

private void Dgv_VScrBar_QcdHook(object sender, QueryContinueDragEventArgs e)
{
e.Action = DragAction.Cancel;
}




ここまですれば、マウスポインタがドロップ禁止のアイコンに変わることもなくいけました。

あとは、ここまでやる!?という判断ですね。

[ メッセージ編集済み 編集者: ガルマ・ザビ 編集日時 2008-02-28 10:17 ]
くまっち
大ベテラン
会議室デビュー日: 2008/01/18
投稿数: 169
お住まい・勤務地: 茨城県のどこか。
投稿日時: 2008-02-28 10:48
補足ありがとうございます。
ここまでやれば完璧じゃないですかね。

#今さら気が付いたんだけど使用言語C#だったのですね。。。
VB.NETだと思い込んで、書いていました。 。o(どこでVBだと思ったんだろ??
C#コードへの変換についても、お礼申し上げます。
ポンタ
会議室デビュー日: 2007/06/13
投稿数: 10
投稿日時: 2008-03-06 08:55
ScrollVarのショートカットが表示されなくなりました。
完璧ですね。

みなさん、ありがとうございました。

スキルアップ/キャリアアップ(JOB@IT)