国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

.NET中Form.AutoScrollPosition的運用

2024-07-10 12:58:50
字體:
供稿:網(wǎng)友
今天拿c#寫了一個支持滾動的圖片顯示程序(winform程序),主要運用form的autoscroll,代碼很簡單,關(guān)鍵代碼如下:/// <summary>/// form的load事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void form1_load(object sender, system.eventargs e){   //這個很關(guān)鍵,只有該屬性為true時,窗口才會在控件超出窗口范圍時    //自動添加滾動條,并在我們操作滾動條時,自動滾動控件    this.autoscroll = true;}/// <summary>/// 設(shè)置一個圖片文件到picturebox1上/// </summary>/// <param name="filename">圖片文件名</param>private void setimage(string filename){    bitmap bm = new bitmap(filename);    picturebox1.backgroundimage = bm;        graphicsunit bmgu = graphicsunit.pixel;    rectanglef rectf = bm.getbounds(ref bmgu);    //設(shè)置picturebox1的大小和位置。如果該控件超出form的范圍,form會自動    //添加滾動條    picturebox1.setbounds(0, 0, (int)rectf.width, (int)rectf.height);}/// <summary>/// picturebox1的dobuleclick事件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void picturebox1_doubleclick(object sender, system.eventargs e){    //打開一個文件對話框選擇圖片文件    openfiledialog openfiledialog = new openfiledialog();    openfiledialog.filter = "image files|*.bmp;*.jpg;.jpeg;*.gif";    if(openfiledialog.showdialog() == dialogresult.ok)    {        //設(shè)置要顯示的圖片        setimage(openfiledialog.filename);    }} 運行一下,似乎很正常,雙擊picturebox1,打開一個圖片文件,如果圖片尺寸過大,會自動出現(xiàn)滾動條。只是有一種情況,先打開一個大圖片,然后拖動滾動條到最后,然后再打開一圖片,圖片顯示的位置就出錯了(不是顯示在左上角)。奇怪了,我明明設(shè)置了picturebox1的x y為0了啊:picturebox1.setbounds(0, 0, ……)真是很費解!! 經(jīng)過艱苦地攻讀framework幫助文件,終于找出原因,現(xiàn)在和大家分享:原來當(dāng)我們改變了窗口的滾動條的位置后,窗口客戶區(qū)的坐標原點就發(fā)生了變化,和原來的坐標原點的偏移量可以用form.autoscrollposition表示。既然問題找到了,解決就很簡單,修改setimage函數(shù)的最后一句代碼為:picturebox1.setbounds(autoscrollposition.x, autoscrollposition.y, (int)rectf.width, (int)rectf.height);就一切ok了!!
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 富宁县| 长兴县| 恩施市| 彭山县| 柞水县| 竹溪县| 西华县| 静乐县| 杭锦后旗| 延长县| 绥棱县| 黎川县| 涟源市| 长武县| 从江县| 临桂县| 乐安县| 泽库县| 安陆市| 东丽区| 临高县| 疏附县| 连城县| 兴文县| 长泰县| 盘山县| 兴国县| 平和县| 平顺县| 连南| 睢宁县| 互助| 芷江| 甘洛县| 乐都县| 长顺县| 荣昌县| 三河市| 白城市| 定南县| 四子王旗|