private void ClickOk(int ABC)
        {
            PicBox.ImageLocation = @"images\"+ABC+".jpg";
            PicBox.Show();
            int FormHeight = PicBox.Height + 60;
            this.Size = new System.Drawing.Size(123, FormHeight);
        }
窗体设计:picbox初始height=100,sizemode=autosize.希望的效果是:如果ABC.jpg的height是200,那么ClickOk后form的height应该是260。如此重复但是我运行下来,每次都是第一次ClickOk后FormHeight是160(获取的是初始值),第二次ClickOk后才变成260。如果我每次传如的ABC是尺寸不同的图片,那么FORM的SIZE变化都是根据前一张图片的height在变,而不是当前这张。
能帮我解决下吗

解决方案 »

  1.   

              
    int FormHeight = PicBox.Height + 60; 
    this.Size = new System.Drawing.Size(123, FormHeight); 
    我把上面代码放到PicBox的sizechange事件内就解决了.
    但是还是不太理解上面这样的错误原理
      

  2.   


     private void ClickOk(int ABC) 
            { 
                PicBox.ImageLocation = @"images\"+ABC+".jpg"; 
                PicBox.Show(); 
                int FormHeight = PicBox.Height + 60; 
                this.Size = new System.Drawing.Size(123, FormHeight); 
                this.Refresh();//强制控件使其工作区无效并立即重绘自己和任何子控件
            } 
      

  3.   

    谢谢答复
    试过了,加了Refresh,还是老样子.