//用於記錄,滑鼠是否已按下
bool ismousedown = false;
//用於滑鼠拖動多選,標記是否記錄開始行
bool issetstartrow = false;
//用於滑鼠拖動多選,記錄開始行
private int startrowhandle = -1;
//用於滑鼠拖動多選,記錄現在行
private int currentrowhandle = -1;
//用於實現滑鼠拖動選擇多行功能中的乙個方法,對單元格區域進行選中
private void selectrows(int startrow, int endrow)
if (startrow > -1 && endrow > -1)
gridview.beginselection();
gridview.clearselection();
gridview.selectrange(startrow, endrow);
gridview.endselection();
//實現滑鼠拖動選擇多行 ,滑鼠按下事件
private void gridview_mousedown(object sender, mouseeventargs e)
if (e.button == mousebuttons.left)
ismousedown = true;
//實現滑鼠拖動選擇多行 ,滑鼠移動時
private void gridview_mousemove(object sender, mouseeventargs e)
if (ismousedown)
gridhitinfo info = gridview.calchitinfo(e.x, e.y);
//如果滑鼠落在單元格裡
if (info.inrow)
if (!issetstartrow)
startrowhandle = info.rowhandle;
issetstartrow = true;
else
//獲得當前的單元格
int newrowhandle = info.rowhandle;
if (currentrowhandle != newrowhandle)
currentrowhandle = newrowhandle;
//選定 區域 單元格
selectrows( startrowhandle, currentrowhandle);
//實現滑鼠拖動選擇多行 ,滑鼠放開時
private void gridview_mouseup(object sender, mouseeventargs e)
startrowhandle = -1;
currentrowhandle = -1;
ismousedown = false;
issetstartrow = false;
CFileDialog實現多選
create dialog to open multiple files.cfiledialog filedlg true,null,null,ofn hidereadonly ofn overwriteprompt ofn allowmultiselect ofn explorer,t tbl檔案...
實現控制項拖動
網上流傳的一種寫法是 利用 releasecapture sendmessage wm nclbuttondown,htcaption,0 但這種方法有很大的侷限。這裡提供的方法,更加直接。以按鈕為例,讓按鈕來捕獲 滑鼠按下和鬆開的訊息。然後關鍵就在於滑鼠移動的訊息的處理,如果讓按鈕自身來處理wm ...
jQuery實現拖動
定位 給要拖動的物件設定乙個定位 position aboselute 座標 使用event.clientx event.clienty獲取滑鼠位置,使用obj.offset left obj.offset top獲取物件離瀏覽器左上角的座標 事件 mousedown,mouseup,mousemo...