c#中,初始化一个panel大小为(10,10),绘制一张大小为(20X20)的图片在panel上,屏幕会显示图片10X10的大小,我点击“扩大”按钮,执行panel.Width = 20,panel.Height= 20,重新图片,发现绘制的区域仍然是10x10的区域,并不是20x20。
(图片大小绝对大于10*10),而且扩大以后重新绘制过。

解决方案 »

  1.   

      /**绘制*/
            private void panel_back_Paint(object sender, PaintEventArgs e)
            {            repaint_mainpanel();        }
            /**最终绘制*/
            private void repaint_mainpanel()
            {
                if(img != null)
                    g.DrawImage(img, 0, 0, img.Width, img.Height);          //  panel_back.Paint();
            }         /**确定按钮, 改变了panel的大小 ,并且重新绘制*/
            private void change_size_Click(object sender, EventArgs e)
            {
                if (panel_back.Width == 100)
                {
                    panel_back.Width = 200;
                    panel_back.Height = 200;
                }
                else
                {
                    panel_back.Width = 100;
                    panel_back.Height = 100;
                }            repaint_mainpanel();
            
                
            }贴上代码,大家看看,的确画不出来
      

  2.   

    删除之前生成的PANEL 然后再重绘改变大小的panel
      

  3.   

    在改变之前先判断下panel里有没有图像,有就释放panel的资源然后再重新绘制...