国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 湘潭县| 鹤岗市| 黑水县| 宁都县| 江永县| 平遥县| 墨脱县| 呼玛县| 治县。| 德钦县| 嘉峪关市| 泗水县| 安徽省| 桓台县| 孙吴县| 西乌珠穆沁旗| 建平县| 开鲁县| 越西县| 祁门县| 科技| 长春市| 宜兴市| 宁明县| 新建县| 宣汉县| 奎屯市| 花垣县| 凭祥市| 灌阳县| 阜新| 禹城市| 绥德县| 平昌县| 左权县| 峨边| 红安县| 富顺县| 华亭县| 尼木县| 越西县|