老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)

Winform讓PictureBox有滾動(dòng)條并響應(yīng)滾輪和拖動(dòng)事件

.Net提供的PictureBox控件當(dāng)圖片大于顯示區(qū)域時(shí)沒(méi)有滾動(dòng)條供滾動(dòng)查看。不過(guò)好在這個(gè)功能可以很簡(jiǎn)單的通過(guò)Panel來(lái)實(shí)現(xiàn)。我們需要使用一個(gè)Panel來(lái)裝PictureBox,再將Panel的AutoScroll設(shè)置為True,PictureBox的SizeMode設(shè)置為AutoSize。這樣PictureBox的大小就由圖片來(lái)決定了,而當(dāng)PictureBox的大小超過(guò)了Panel時(shí)就會(huì)出現(xiàn)滾動(dòng)條了(來(lái)自于Panel)。但值得注意的是不要將PictureBox控件Dock在Panel上,不然不會(huì)出現(xiàn)滾動(dòng)條,只要將PictureBox的Location設(shè)置為0,0即可。Dock在父容器上時(shí)寬高就由父容器決定了,這和我們想要的AutoSize是相悖的,其實(shí)微軟控件的一些屬性是相悖的,但是在設(shè)計(jì)器中并沒(méi)有體現(xiàn)出來(lái)而是在運(yùn)行時(shí)體現(xiàn),這就給我們帶來(lái)了不少的困惑,需要慢慢的總結(jié)。

創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比欽州網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式欽州網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋欽州地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

現(xiàn)在運(yùn)行起來(lái)查看大圖片就會(huì)出現(xiàn)滾動(dòng)條了,但是你會(huì)發(fā)現(xiàn)鼠標(biāo)滾輪不管用??磥?lái)我們還要加入一些代碼來(lái)支持鼠標(biāo)滾輪。我們可以利用Form上的MouseWheel事件來(lái)處理這個(gè)事情,只是進(jìn)行一下區(qū)域判斷,如果鼠標(biāo)在Panel的區(qū)域內(nèi)則改變Panel的垂直滾動(dòng)數(shù)值即可。

private void mainForm_MouseWheel(object sender, MouseEventArgs e)
{
    // get screen point
    Point mousePoint = _mainForm.PointToScreen(e.Location);
    // whether in panel
    if (this.pnlImage.RectangleToScreen(this.pnlImage.ClientRectangle).Contains(mousePoint))
    {
        this.pnlImage.AutoScrollPosition = new Point(this.pnlImage.HorizontalScroll.Value, pnlImage.VerticalScroll.Value - e.Delta);
    }
}

e.Location就是鼠標(biāo)在form中的位置,以窗口左上角為0,0來(lái)計(jì)算的。通過(guò)PointToScreen方法可以將其轉(zhuǎn)化為屏幕坐標(biāo),以屏幕左上角為0,0來(lái)計(jì)算的。同樣的將Panel的顯示區(qū)域的坐標(biāo)也轉(zhuǎn)化為屏幕坐標(biāo),接下來(lái)就是判斷一下當(dāng)前的鼠標(biāo)是否在Panel的顯示區(qū)域就好了。

但是滾輪只能改變垂直滾動(dòng)條,如果你還想更完美一些支持鼠標(biāo)拖動(dòng)來(lái)同時(shí)改變水平和垂直滾動(dòng)條的話。還需要在PictureBox的MouseDown、MouseMove和MouseUp上來(lái)做點(diǎn)事情。大體的思路就是在MouseDown時(shí)記住一個(gè)坐標(biāo),在MouseMove時(shí)用當(dāng)前坐標(biāo)和記住的坐標(biāo)進(jìn)行比較從而得知鼠標(biāo)的變化方向,并以此來(lái)改變滾動(dòng)條的位置。

private Point _startLocation;
private void pbImage_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        _startLocation = e.Location;
        Cursor = Cursors.SizeAll;
    }
}
private void pbImage_MouseMove(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left)
    {
        int xOffset = _startLocation.X - e.X;
        int yOffset = _startLocation.Y - e.Y;
        this.pnlImage.AutoScrollPosition = new Point(this.pnlImage.HorizontalScroll.Value + xOffset, pnlImage.VerticalScroll.Value + yOffset);
    }
}
private void pbImage_MouseUp(object sender, MouseEventArgs e)
{
    Cursor = Cursors.Default;
}

如果你有更好的解決方案歡迎留言。Winform 讓PictureBox有滾動(dòng)條并響應(yīng)滾輪和拖動(dòng)事件


網(wǎng)站欄目:Winform讓PictureBox有滾動(dòng)條并響應(yīng)滾輪和拖動(dòng)事件
分享路徑:http://www.xueling.net.cn/article/ghsgse.html

其他資訊

在線咨詢
服務(wù)熱線
服務(wù)熱線:028-86922220
TOP
主站蜘蛛池模板: 永久免费看一区二区看片 | 日韩中出| 欧美高大丰满freesex | 亚洲欧美日本国产综合 | 人人狠狠综合久久88成人 | 日韩不卡一二三 | 国产成人久久AV一区二区 | 国产一区二区三区视频网站 | 久久久久久久久毛片精品 | 久久精品久久精品亚洲人 | 日韩免费一区二区三区高清 | 亚洲视频在线观看一区 | 中日韩欧美在线观看 | 亚洲一区精品在线 | 亚洲在线观看一区 | 国产精品视频一区二区三区四蜜臂 | 久久精品国产www456c0m | 亚洲天堂男人 | 国产精品久久久久久久久免费高清 | 亚洲精品久久久久9999吃药 | 呻吟翘臀后进爆白浆 | 亚洲欧美综合区丁香五月小说 | 欧美日韩亚洲精品一区二区三区 | 成年女人看片免费视频播放人 | 黄色成人网战 | 国产日韩久久免费福利网站 | avwww在线 | 蜜桃视频麻豆女神沈芯语免费观看 | 福利一区二区视频 | www视频在线免费观看 | 九九九九国产 | 77色77国产欧美在线 | 中文字幕日韩精品成人免费区二区 | 国产一区二区三区四区五区精品 | 精品一区毛片 | 福利网址在线观看 | 久久久久久爱 | 手机永久无码国产AV毛片 | 一本色道久久综合亚洲精品图片 | 久久久久亚洲AV无码网站 | 亚洲欧美精品午睡沙发 |