如下:        |->80 <-|--->60<----| 注:此处为长度,大概就是这意思  
-------------        -------------         -------------
|           |        |           |         |           |      
|picturebox1|        |picturebox2|         |picturebox3|
|           |        |           |         |           |
-------------        -------------         -------------
=========================================================
|                    picturebox4                        |
=========================================================
目的:picturebox1,picturebox2,picturebox3 不确定哪个显示(picturebox2和picturebox3是根据picturebox1动态生成的),但是位置是确定的,picturebox4的长度是与上面的三个picturebox的长度是对应的,也就是说,如果只显示picturebox1,那么picturebox4就应该截取到picturebox1那么的长度,如果出现picturebox2和picturebox3,那么,picturebox4就要截取掉picturebox1下面的那部分,如果三个都显示,那么就如上图,求代码,

解决方案 »

  1.   

    不用截取,只要设置picturebox4的大小就可以了
      

  2.   

    日,怎么变型了呢,我的意思就是说如果只显示picturebox1,那么picturebox4也就要显示picturebox1的长度,如果要是显示picturebox2和picturebox3的长度,那么picturebox4的长度就应该是picturebox2和picturebox3的长度在加上两者之间的距离;最关键的是要对应上,说白了就是要picturebox4始终显示在上面显示picturebox的下面
      

  3.   

    是啊,根据要显示的几个picbox的宽度,或者上边最后一个picbox的left+width就可以算出picbox4的宽度,直接设置picbox4的宽度就ok了
      

  4.   

    可以直接设置长度,变形是因为你没有设置宽度,等比缩放。就可以了。比如,原来长是,200 宽 200
    改后,长。100  那么宽就等于,200 * (100 / 200) 记得都定义成float否则,会不准备,当然如果准确率要求不高的话无所谓。
      

  5.   

    恩,我知道缩放,但是,不可以哪么做,picturebox4中的image是必须要截取才能实现效果的
      

  6.   

    MSDN上有图片截取并保存的例子,你的情况相似
      

  7.   

    1.你先計算出你要顯示的圖片在屏幕上的具體座標位置。
    2.創建一個Image對象,設置其大小為要顯示的大小.
    3.從Image對象創建一個Graphics。使用Graphics.CopyFromScreen方法可以實現從屏幕截取圖片。
    如:            Image image= new Bitmap(100, 100);
                Graphics g = Graphics.FromImage(image);
                //然後使用g.CopyFromScreen會把屏幕指定位置的圖片放到image中4. 將picturebox的Image設為你復制好圖片的image即完成