本版专家分:0　结帖率:83.33%　我自己绘制了winform界面,在Paint方法里面手工绘制了各个部分,当我改变窗口大小的时候,有些部分再新的窗口大小相对位置又重新出现了图片,但是在原来那个地方的图片没有消失,我想问各位大虾,在窗口重绘的时候应该怎么让窗口刷新啊?　本版专家分:816253　结帖率:100%　名人　2012年　荣获名人称号　状元　2010年　总版技术专家分年内排行榜第一　2009年　总版技术专家分年内排行榜第一　榜眼　2011年　总版技术专家分年内排行榜第二　更多勋章　refresh();　http://topic.csdn.net/u/20071020/21/5e94526f-6516-400b-9176-cf78b2f3b7e2.html　本版专家分:2288　结帖率:98.18%　const　int　WM_NCHITTEST　=　0x0084;　const　int　HTLEFT　=　10;　const　int　HTRIGHT　=　11;　const　int　HTTOP　=　12;　const　int　HTTOPLEFT　=　13;　const　int　HTTOPRIGHT　=　14;　const　int　HTBOTTOM　=　15;　const　int　HTBOTTOMLEFT　=　0x10;　const　int　HTBOTTOMRIGHT　=　17;　protected　override　void　WndProc(ref　Message　m)　{　base.WndProc(ref　m);　switch　(m.Msg)　{　case　WM_NCHITTEST:　Point　vPoint　=　new　Point((int)m.LParam　&　0xFFFF,　(int)m.LParam　>>　16　&　0xFFFF);　vPoint　=　PointToClient(vPoint);　if　(vPoint.X　<=　5)　if　(vPoint.Y　<=　5)　m.Result　=　(IntPtr)HTTOPLEFT;　else　if　(vPoint.Y　>=　ClientSize.Height　-　5)　m.Result　=　(IntPtr)HTBOTTOMLEFT;　else　m.Result　=　(IntPtr)HTLEFT;　else　if　(vPoint.X　>=　ClientSize.Width　-　5)　if　(vPoint.Y　<=　5)　m.Result　=　(IntPtr)HTTOPRIGHT;　else　if　(vPoint.Y　>=　ClientSize.Height　-　5)　m.Result　=　(IntPtr)HTBOTTOMRIGHT;　else　m.Result　=　(IntPtr)HTRIGHT;　else　if　(vPoint.Y　<=　5)　m.Result　=　(IntPtr)HTTOP;　else　if　(vPoint.Y　>=　ClientSize.Height　-　5)　m.Result　=　(IntPtr)HTBOTTOM;　break;　}　}　本版专家分:0　结帖率:83.33%　引用　1　楼wuyq11　的回复:　refresh();　http://topic.csdn.net/u/20071020/21/5e94526f-6516-400b-9176-cf78b2f3b7e2.html　我用在paint方法内使用refresh()出现的是窗口不停的重绘一直不停的闪　本版专家分:34009　结帖率:100%　黄花　2010年2月.NET技术大版内专家分月排行榜第二　2009年11月.NET技术大版内专家分月排行榜第二　2009年10月.NET技术大版内专家分月排行榜第二　引用　3　楼lisi1987　的回复:　我用在paint方法内使用refresh()出现的是窗口不停的重绘一直不停的闪　试试:　this.SuspendLayout();　//开始画...　//　全部画完　this.ResumeLayout(false);　this.PerformLayout();　本版专家分:1018　结帖率:100%　一般画图都是用双缓冲防止闪烁,如果在大小改变的时候,要更新可以强制重绘(Invalidate)!　本版专家分:2220　结帖率:97.22%　帮顶。