精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

C#中用鼠標移動頁面功能的實現

開發 后端
打印預覽控件中,可以用鼠標拖動頁面,以查看超出顯示范圍之外的部分內容。本文主要也就是在C#中用鼠標移動頁面功能的實現。

該功能本來可以通過拉動水平和垂直滾動條來實現,但實際使用中,用戶更趨向于直接用鼠標拖動頁面來實現,很多看圖類軟件都有這種類似的功能。而.net的打印預覽控件卻很遺憾的沒有提供這一功能,只來自己想辦法來實現啦。

呵呵,不過辦法總是有的。

我的辦法就是用代碼來控制打印預覽控件中的水平來垂直滾動條的位置,間接實現和用鼠標直接拖動滾動條一樣的效果。

在實現這一功能的過程中,最大的困難是打印預覽控件并沒有讓程序員直接調用的關于滾動條的方法或屬性。所以只好向WinAPI求助了。

以下API函數和常量就是實現上述功能的關鍵了:

[DllImport("user32.dll")]
private static extern int SetScrollPos(IntPtr hwnd, int nBar, int nPos, bool bRedraw);
[DllImport("user32.dll")]
private static extern int GetScrollPos(IntPtr hwnd, int nBar);
[DllImport("user32.dll")]
private static extern bool PostMessage(IntPtr hWnd, int nBar, int wParam, int lParam);
[DllImport("user32", CharSet = CharSet.Auto)]
private static extern bool GetScrollRange(IntPtr hWnd, int nBar,
out int lpMinPos, out int lpMaxPos); 
 

private const int SB_HORZ = 0x0;
private const int SB_VERT = 0x1;
private const int WM_HSCROLL = 0x114;
private const int WM_VSCROLL = 0x115;
private const int SB_THUMBPOSITION = 4;

簡單說明一下吧:

SetScrollPos:設置所指定滾動條中的滾動按鈕的位置

GetScrollPos:獲取指定滾動條的滾動按鈕的位置

GetScrollRange:獲取指定滾動條的滾動按鈕的位置最大最小值

PostMessage:這個函數是關鍵中的關鍵,它負責向Windows控件發送相應的消息,以真正執行相應的操作。一些網友實現了滾動條中滑塊位置的移動,但卻沒有引起控件中內容的移動,其原因就是因為沒有調用這個函數,沒有把移動內容的消息發送給控件。

SB_HORZ :代表水平滾動條

SB_VERT :代表垂直滾動條

WM_HSCROLL :代表水平滾動事件

WM_VSCROLL :代表垂直滾動事件

SB_THUMBPOSITION :至于這個常量,其含義我也不是很清楚,有知道的朋友歡迎回復給我。

好了,準備工作做好了,就可以開工了。

先聲明幾個變量:

       bool Preview_move = false;//是否按下鼠標,表示處理移動狀態。
       Point MoveStart;//移動開始時,鼠標的坐標點
       Point MoveEnd;//移動過程中鼠標的坐標點

在控件的MouseDown事件中,當鼠標按下時開始移動頁面,并記下起始坐標點:

       private void previewer_MouseDown(object sender, MouseEventArgs e)
       {
           Preview_move = true;
           MoveStart = e.Location;
       }

在控件的MouseUp事件中,記得當鼠標放開后要置回非移動狀態:

       private void previewer_MouseUp(object sender, MouseEventArgs e)
       {
           Preview_move = false;
       }

以下就是實現移動頁面的關鍵部分了,在控件的MouseMove實現用代碼間接控制控件的滾動條位置并實現頁面實時移動:

       private void previewer_MouseMove(object sender, MouseEventArgs e)
       {
           if (!Preview_move) return;           
           MoveEnd = e.Location;
           int MinH,MaxH,MinV,MaxV;
//獲得鼠標在X和Y兩個方向上的移動量。除以10是為是讓移動頁面的速度變慢一點。而前面的負號則是用來調節頁面移動方向的。
           int MoveX = -(MoveEnd.X - MoveStart.X)/10;
           int MoveY = -(MoveEnd.Y - MoveStart.Y)/10;
//獲取滾動條的最大最小位置和當前位置
           GetScrollRange(previewer.Handle, 0, out MinH, out MaxH);
           GetScrollRange(previewer.Handle, 1, out MinV, out MaxV);
           int PosH = GetScrollPos(previewer.Handle, 0);
           int PosV = GetScrollPos(previewer.Handle, 1);
//計算最終滾動條的位置(注意最終位置不要超出最大最小值的范圍)
           int PosH1 = PosH + MoveX;
           if (PosH1 >= MinH && PosH1 <= MaxH)
           {
               SetScrollPos(previewer.Handle, SB_HORZ, PosH1, true);//設置滾動條的位置
               PostMessage(previewer.Handle, WM_HSCROLL, SB_THUMBPOSITION + 0x10000 * PosH1, 0);//告訴控件移動頁面內容到相應的位置上
           }

           int PosV1 = PosV + MoveY;
           if (PosV1 >= MinV && PosV1 <= MaxV)
           {
               SetScrollPos(previewer.Handle, SB_VERT, PosV1, true);
               PostMessage(previewer.Handle, WM_VSCROLL, SB_THUMBPOSITION + 0x10000 * PosV1, 0);
           }
       }

OK,一個能用鼠標實時移動頁面內容的打印預覽功能作好了。其實,對于.net中很多控件都可以用相似的方面實現對滾動條的控制。

您正在閱讀的是《C#中用鼠標移動頁面功能的實現

【編輯推薦】

  1. C# 2010協變和逆變的新特性
  2. Visual C# 2010新特性之dynamic類型
  3. C# 4.0新特性dynamic作用淺析
責任編輯:彭凡 來源: cnblogs
相關推薦

2009-08-28 16:03:15

C#程序實現鼠標移動

2009-09-03 16:50:35

C#鼠標形狀

2009-09-02 18:53:28

C#鼠標坐標

2009-09-02 17:29:10

C# TextBox換

2009-09-16 09:06:16

Specificati

2009-08-07 13:03:10

C#控件數組

2009-08-26 10:43:14

C#實現打印功能

2009-08-26 09:22:44

C#實現打印功能

2009-09-08 09:31:54

c# CheckBox

2009-09-03 14:55:56

C#實現DataGri

2009-09-04 09:27:48

C#調用瀏覽器

2009-09-07 15:40:06

2009-09-03 18:19:35

C#鼠標右鍵

2009-09-02 18:11:24

C#鼠標

2009-09-08 16:51:50

C#鼠標拖動

2009-09-07 18:08:25

C#鼠標指針

2009-09-02 18:34:28

C#鼠標事件

2009-08-26 13:22:24

C#打印程序

2009-08-18 09:26:07

C#線程功能

2009-09-07 06:31:32

C#窗體移動
點贊
收藏

51CTO技術棧公眾號

一区二区三区国产好的精华液| 亚洲一区二区三区sesese| 四虎精品一区二区| 免费av毛片在线看| 国产乱码精品一品二品| 欧美激情视频一区二区| 国产免费a级片| 一区二区三区短视频| 中日韩免费视频中文字幕| 国产精品久久久久久五月尺| 伊人久久久久久久久久久久久久| 久久三级毛片| 亚洲精品成人天堂一二三| 国产富婆一区二区三区 | 亚洲精品白浆高清| 欧美午夜精品久久久久久孕妇 | 欧美国产禁国产网站cc| 91在线无精精品一区二区| 国产一级视频在线播放| 九九综合久久| 日韩一区二区视频| 蜜臀av午夜一区二区三区| 国产美女av在线| 国产资源精品在线观看| 午夜精品一区二区三区视频免费看| 亚洲av无码国产精品久久| 黄色日韩网站| 欧美日韩综合视频| 亚洲免费视频播放| 免费毛片在线| 丁香一区二区三区| 国产精品日日摸夜夜添夜夜av| 国产女人18水真多毛片18精品| 精品久久ai电影| 欧美卡1卡2卡| 欧美色图另类小说| 超级白嫩亚洲国产第一| 亚洲欧美色综合| 亚洲精品中字| 三级外国片在线观看视频| 久久久久国产精品麻豆| 久久riav二区三区| 污视频在线免费| www.亚洲免费av| 国产日韩欧美亚洲一区| 性一交一乱一精一晶| 久久精品国产精品亚洲红杏| 国产成人中文字幕| 免费无码国产精品| 视频精品一区二区| 国产精品久久久久久久一区探花| 欧美亚洲另类小说| 日韩国产欧美三级| 国产精品日韩欧美大师| 一区二区三区免费观看视频| 蜜臀av一区二区| 国产精品免费电影| 91theporn国产在线观看| 久久精品国产精品亚洲精品| 成人国产精品色哟哟| 国产尤物视频在线观看| 国产呦萝稀缺另类资源| 亚洲xxxx在线| 视频一区二区免费| 久久久久国产成人精品亚洲午夜| 欧美日韩在线精品| 3d成人动漫在线| 亚洲丝袜精品丝袜在线| 国产又粗又长又爽视频| 女同视频在线观看| 婷婷国产v国产偷v亚洲高清| 毛片在线视频播放| 在线一区视频观看| 欧美一卡二卡在线| 日韩免费高清一区二区| 国产成人三级| 久久久国产精彩视频美女艺术照福利 | 亚洲第一精品区| 亚洲小说区图片区都市| 亚洲18色成人| 性欧美极品xxxx欧美一区二区| 日韩免费在线电影| 精品少妇一区二区三区日产乱码| 国产夫妻性爱视频| 欧美电影免费| 国模吧一区二区| 亚洲大尺度在线观看| 国产一区二区看久久| 久久99影院| 久久久久久国产精品免费无遮挡| 亚洲国产日韩一区二区| 成人亚洲视频在线观看| 欧美.com| 国产亚洲精品日韩| 精品在线视频观看| 日本aⅴ免费视频一区二区三区| 3d动漫精品啪啪一区二区三区免费| 日韩一级片免费看| 国产精品国产三级国产aⅴ无密码| 美女在线免费视频| 人人鲁人人莫人人爱精品| 日韩一区二区精品葵司在线| 醉酒壮男gay强迫野外xx| 天天色天天射综合网| 青草成人免费视频| www.久久久久久| 欧美国产精品久久| 免费 成 人 黄 色| 日韩欧洲国产| www国产精品com| 在线观看黄网站| 国产伦精一区二区三区| 午夜精品一区二区三区四区| 999av小视频在线| 日韩一区二区三区免费观看 | 亚洲乱码国产乱码精品精98午夜 | 99re66热这里只有精品3直播| 亚洲精品久久久久久一区二区| av资源一区| 欧美一卡二卡三卡| 免费黄色激情视频| 秋霞电影网一区二区| 九色综合日本| 欧美性猛片xxxxx免费中国| 欧美日韩久久久一区| 免费在线观看成年人视频| 一个色综合网| 国产中文字幕日韩| 国产福利片在线| 日本韩国视频一区二区| 人妻少妇精品视频一区二区三区| 欧美日韩一区二区国产| 成人性生交大片免费观看嘿嘿视频| 加勒比一区二区三区在线| 黑人巨大精品欧美一区免费视频| 国产乱淫av片| 午夜精品久久99蜜桃的功能介绍| 国产精品综合久久久| 成黄免费在线| 欧美日韩免费观看一区三区| 少妇的滋味中文字幕bd| 日韩电影在线免费| 日韩av一区二区三区在线观看| 精精国产xxxx视频在线播放| 精品粉嫩aⅴ一区二区三区四区| 中文字幕在线有码| 国产伦精品一区二区三区免费| 亚洲一区二区不卡视频| 久久精品国产精品亚洲毛片| 中文字幕日韩有码| 在线观看毛片视频| 国产精品福利av| 亚洲无在线观看| 亚洲综合婷婷| 亚洲一区中文字幕| 欧美videosex性欧美黑吊| 精品久久久影院| 一区二区三区视频免费看| 99re这里都是精品| 精品久久久久久久免费人妻| 欧美日韩中文字幕一区二区三区| 国产精品热视频| 好吊日视频在线观看| 日韩欧美美女一区二区三区| www.99re7.com| 91美女片黄在线观看91美女| 熟女人妇 成熟妇女系列视频| 禁断一区二区三区在线| 成人国产精品日本在线| 牛牛精品视频在线| 日韩成人在线视频网站| 啦啦啦免费高清视频在线观看| 久久精品人人做人人综合 | 欧日韩免费视频| 香蕉久久精品| 国产精品爽爽爽爽爽爽在线观看| 黄色大片在线播放| 亚洲第一视频网| 国产精品露脸视频| 亚洲一区精品在线| b站大片免费直播| 国内精品免费**视频| 少妇人妻无码专区视频| 波多野结衣一区| 懂色中文一区二区三区在线视频| 欧产日产国产精品视频| 最新国产成人av网站网址麻豆| 国产黄色免费大片| 日本精品一级二级| 国产亚洲精品成人| 日本一区二区三区国色天香| 国产chinesehd精品露脸| 午夜亚洲影视| 日本女人高潮视频| 蜜桃成人av| 91文字幕巨乱亚洲香蕉| 人人鲁人人莫人人爱精品| 欧美人交a欧美精品| 国产小视频在线| 日韩久久久精品| 制服丝袜在线一区| 亚洲成人精品一区| 免费国产羞羞网站美图| aaa欧美日韩| 手机精品视频在线| 日本不卡在线视频| 日本中文字幕网址| 欧美在线91| 亚洲一二三区在线| 自拍欧美一区| 国产日韩一区二区三区| 国产精品一区二区三区av| 国产精品久久久久久久久久尿 | 一区二区视频欧美| 成年人黄色在线观看| 国产一区2区| 精品视频免费观看| 成人h动漫免费观看网站| 91久久精品日日躁夜夜躁国产| **欧美日韩在线观看| 97视频在线观看成人| 中文字幕在线三区| 久久在线精品视频| 天堂中文8资源在线8| 亚洲欧美中文日韩在线v日本| 狠狠综合久久av一区二区| 日韩免费一区二区| 国产三级午夜理伦三级| 欧美精品丝袜中出| 影音先锋黄色网址| 欧美性受xxxx黑人xyx| 中文字幕国产在线观看| 欧美日韩免费网站| 中文字幕亚洲精品在线| 精品久久久久国产| 久久夜靖品2区| 精品久久久久久中文字幕大豆网| 国产亚洲第一页| 亚洲国产精品一区二区久久恐怖片 | 日韩精品福利| 精品亚洲一区二区三区在线播放 | 日本在线观看免费视频| 日韩精品乱码免费| 色综合手机在线| 免费人成精品欧美精品| 污版视频在线观看| 狠狠色狠狠色合久久伊人| 夜夜夜夜夜夜操| 国产麻豆精品久久一二三| 成年人看片网站| 成人亚洲一区二区一| 天天躁日日躁狠狠躁av| 99久久婷婷国产| 三级网站在线免费观看| 欧美国产激情一区二区三区蜜月| 丁香六月激情综合| 亚洲欧美另类小说视频| 欧美成人精品欧美一级| 午夜精品免费在线观看| 中文字幕精品无码一区二区| 午夜电影一区二区三区| 一级黄色在线视频| 91精品1区2区| 国产乱淫a∨片免费视频| 欧美一级免费大片| 五月天久久久久久| 亚洲天堂第一页| 欧美日本一道| 欧美精品videosex性欧美| 99thz桃花论族在线播放| 欧洲亚洲免费在线| 成人免费黄色| 成人av免费在线看| 亚洲福利天堂| 一区国产精品| 亚洲视频精品| 国产精品久久久久9999小说| 韩国三级在线一区| 精品一区二区视频在线观看| 国产欧美日韩三区| 九九视频免费观看| 色婷婷国产精品久久包臀| 中文在线a天堂| 欧美mv日韩mv国产| 成人av一区| 欧美激情精品久久久久久蜜臀| 色在线视频观看| 成人免费在线视频网址| 欧美91在线| a级黄色片网站| 美女视频一区免费观看| 女人扒开腿免费视频app| 久久毛片高清国产| 久久久久久久福利| 欧美体内she精视频| 韩国av在线免费观看| 色先锋资源久久综合5566| 丰满的护士2在线观看高清| 国产精品成人一区二区| 9l视频自拍蝌蚪9l视频成人 | 国模大胆一区二区三区| 久草综合在线观看| 成人激情校园春色| 久久久精品少妇| 色94色欧美sute亚洲线路二| 超碰在线观看av| 日韩在线观看网站| 丝袜美腿一区| 韩国成人动漫在线观看| 久久久久国产| 午夜免费福利在线| 久久综合九色综合97婷婷女人| 久久r这里只有精品| 欧美在线一区二区| 青青青草原在线| 午夜精品一区二区三区在线| 视频精品国内| 一区国产精品| 蜜桃精品在线观看| 六月婷婷七月丁香| 狠狠色狠色综合曰曰| 亚洲av色香蕉一区二区三区| 日韩一区二区三区xxxx| 亚洲电影有码| 日本一区二区三区www| 米奇777在线欧美播放| 在线黄色免费网站| 亚洲高清免费一级二级三级| 国产成人精品一区二三区四区五区| 亚洲一级一级97网| 成人福利视频| 久久人人97超碰人人澡爱香蕉| 亚洲国产专区| 岛国av免费观看| 亚洲一卡二卡三卡四卡无卡久久| 国产人妖一区二区三区| 久久影院中文字幕| 麻豆国产一区| 日韩精品综合在线| www.亚洲精品| youjizz在线视频| 亚洲男人天堂2019| 成人香蕉视频| 日韩av在线电影观看| 日本欧美加勒比视频| 国产成人免费观看网站| 欧美性生活大片视频| 91在线直播| 91视频九色网站| 女人香蕉久久**毛片精品| aaaaa黄色片| 亚洲福利一区二区| 天堂av一区二区三区| 欧美孕妇与黑人孕交| 欧美三级午夜理伦三级在线观看 | www999久久| 50度灰在线观看| av一本久道久久综合久久鬼色| 六月丁香在线视频| 永久555www成人免费| **国产精品| 国产欧美精品aaaaaa片| 成人黄页在线观看| 日本特级黄色片| 色爱av美腿丝袜综合粉嫩av| 粉嫩av国产一区二区三区| 日韩精品一区二区在线视频| www.欧美精品一二区| 亚洲欧美一二三区| 久久精品视频中文字幕| 91国内精品白嫩初高生| 99热成人精品热久久66| 中文av一区二区| 国 产 黄 色 大 片| 日韩av免费一区| 亚洲精品一区二区妖精| 无码人妻一区二区三区在线| 色又黄又爽网站www久久| 色的视频在线免费看| 精品久久中出| 美女一区二区视频| 日本五十路女优| 在线观看视频99| aaa国产精品视频| 亚洲成人福利在线观看| 亚洲久草在线视频| 欧美捆绑视频| 91在线在线观看| 视频一区免费在线观看| 免费视频一二三区| 亚洲无限av看| baoyu135国产精品免费| 日日噜噜夜夜狠狠| 性久久久久久久久| 日本最新在线视频| 久久影视中文粉嫩av| 国产麻豆欧美日韩一区| 天干夜夜爽爽日日日日| 欧美第一淫aaasss性| 久久亚洲影视|