با سلام

دوستان من تو نرم افزار یه سری کنترل با استفاده از رویداد paint به شکل زیر ساختم ولی متاسفانه وقتی فرم رو جابه جا می کنم فرم خیلی کند جابه جا می شود.ناگفته نماند که من از کدهای زیربرای doubleBuffered استفاده کرده ام ممنون میشم راه حلی بهم پیشنهاد بدید که چطوری این مشکل رو رفع کنم

typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (panel6,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button6,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button7,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button8,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button9,true,null);
//typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button10,true,null);
//typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button11,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button17,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button18,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button19,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button12,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (panel1,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (panel3,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (panel10,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (button13,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue (panel8,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( panel16,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( panel20,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( dataGridView1,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( panel21,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( panel22,true,null);
typeof(Control).GetProperty("DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).SetValue( panel26, true, null);



protected override void OnResize(EventArgs e)
{
base.OnResize(e);
panel6.Invalidate();
button6.Invalidate();
button7.Invalidate();
button8.Invalidate();
//button10.Invalidate();
button9.Invalidate();
//button11.Invalidate();
button12.Invalidate();
panel1.Invalidate();
panel3.Invalidate();
panel10.Invalidate();
button13.Invalidate();
panel26.Invalidate();
panel8.Invalidate();
panel16.Invalidate();
panel20.Invalidate();
panel21.Invalidate();
panel22.Invalidate();
dataGridView1.Invalidate();
button17.Invalidate();
button18.Invalidate();
button19.Invalidate();


}
protected override void OnMinimumSizeChanged(EventArgs e)
{

base.OnMinimumSizeChanged(e);
panel6.Invalidate();
button6.Invalidate();
button7.Invalidate();
panel26.Invalidate();

button8.Invalidate();
//button10.Invalidate();
button9.Invalidate();
//button11.Invalidate();
button12.Invalidate();
panel1.Invalidate();
panel3.Invalidate();
panel10.Invalidate();
button13.Invalidate();
panel8.Invalidate();
panel16.Invalidate();
panel20.Invalidate();
dataGridView1.Invalidate();
panel21.Invalidate();
panel22.Invalidate();
button17.Invalidate();
button18.Invalidate();
button19.Invalidate();
}
protected override void OnMaximumSizeChanged(EventArgs e)
{

base.OnMaximumSizeChanged(e);
panel6.Invalidate();
button6.Invalidate();
button7.Invalidate();
button8.Invalidate();
//button10.Invalidate();
button9.Invalidate();
panel26.Invalidate();

//button11.Invalidate();
button12.Invalidate();
panel1.Invalidate();
panel3.Invalidate();
panel10.Invalidate();
button13.Invalidate();
panel8.Invalidate();
panel16.Invalidate();
panel20.Invalidate();
dataGridView1.Invalidate();
panel21.Invalidate();
panel22.Invalidate();
button17.Invalidate();
button18.Invalidate();
button19.Invalidate();
}
protected override void OnMouseMove(MouseEventArgs e)
{
base.OnMouseMove(e);
this.Invalidate();
panel6.Invalidate();
button6.Invalidate();
button7.Invalidate();
button8.Invalidate();
//button10.Invalidate();
button9.Invalidate();
panel26.Invalidate();

//button11.Invalidate();
button12.Invalidate();
panel1.Invalidate();
panel3.Invalidate();
panel10.Invalidate();
button13.Invalidate();
panel8.Invalidate();
panel16.Invalidate();
panel20.Invalidate();
dataGridView1.Invalidate();
panel21.Invalidate();
panel22.Invalidate();
button17.Invalidate();
button18.Invalidate();
button19.Invalidate();
}
protected override void OnMove(EventArgs e)
{
base.OnMove(e);
this.Invalidate();
panel6.Invalidate();
button6.Invalidate();
button7.Invalidate();
button8.Invalidate();
panel26.Invalidate();

//button10.Invalidate();
button9.Invalidate();
//button11.Invalidate();
button12.Invalidate();
panel1.Invalidate();
panel3.Invalidate();
panel10.Invalidate();
button13.Invalidate();
panel8.Invalidate();
panel16.Invalidate();
panel20.Invalidate();
dataGridView1.Invalidate();
panel21.Invalidate();
panel22.Invalidate();
button17.Invalidate();
button18.Invalidate();
button19.Invalidate();
}