C 中兩個listBox雙擊與拖放共存的一種實現

2021-09-01 06:55:17 字數 1096 閱讀 1132

[b]引言:[/b]

今天做前台c#的同事,糾結在了,「拖拽事件使用的listbox1_mousedown(s, e)會『遮蔽掉』雙擊事件的使用的listbox1_doubleclick」,這一問題上。查證多方資料,沒好的解決方法。

於是筆者休息時實驗了一下,使用e.clicks這個屬性可以解決。具體請參閱正文。

[b]正文:[/b]

實現機理:((mouseeventargs)e).clicks通過值的可以區分單擊雙擊。於是可將雙擊事件實現寫入e.clicks > 1的語句,來達到預期效果。

細節不叨叨,直接上**。

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.text;

using system.windows.forms;

namespace c4pluswform

private void listbox1_mousedown(object sender, mouseeventargs e)

// 單擊動作

else

}system.console.writeline("listbox1_mousedown" + e.clicks);

}private void listbox2_dragdrop(object sender, drageventargs e)

}private void listbox2_dragover(object sender, drageventargs e)

private void listbox1_doubleclick(object sender, eventargs e)}}

實驗效果圖如下:

[img]

操作步驟:

0)選中222

1)拖動222

2)雙擊333

3)雙擊1111

C 兩個原則

include using namespace std 2.抽象層業務邏輯 class ireader 3.底層業務邏輯 介面 細節 class book public ireader 介面 細節 class news public ireader 介面 細節 class electricbook ...

C 中兩個類互相引用

一 問題描述 現在有兩個類a和b需要定義,定義a的時候需要用到b,定義b的時候需要用到a。二 分析 a和b的定義和呼叫都放在乙個檔案中肯定是不可以的,這樣就會造成兩個迴圈呼叫的死迴圈。根本原因是 定義a的時候,a的裡面有b,所以就需要去檢視b的佔空間大小,但是檢視的時候又發現需要知道a的佔空間大小,...

C 中兩個冒號( )的作用

global system.console.writeline number 冒號在什麼地方用.點是空間下類,表示下一層的意思?這裡面 前面是gac的標示符global,用法比較特殊,和.不是乙個型別的東西。global 是 c 2.0 中新增的關鍵字,理論上說,如果 寫得好的話,根本不需要用到它。...