在一个按钮事件里显示两个隐藏的panel
其中一个panel中绘制图片及一些文字信息,另外一个直接动态加载几排按钮
第一次执行这个事件,按钮全部加载完后,绘制的图片及文字闪一下就没有了,第二次及之后又是正常的,求高手指教

解决方案 »

  1.   

    private void painCustomer(string name, string phone, string company, string lastdate, Image picCustomer)
            {
                //先清空绘图
                if (i != 0)
                {
                    this.GBoxCustomer.Refresh();
                }
                //绘制信息
                Font TipFont = new Font("宋体", 10.5F, FontStyle.Bold);
                Graphics graphics = this.GBoxCustomer.CreateGraphics();
                graphics.DrawImage(picCustomer, new Rectangle(264, 185, 113, 129), new Rectangle(0, 0, 113, 129), GraphicsUnit.Pixel);
                graphics.DrawString(name, TipFont, new SolidBrush(Color.Black), new Rectangle(256, 391, 155, 14));
                graphics.DrawString(phone, TipFont, new SolidBrush(Color.Black), new Rectangle(256, 448, 155, 14));
                graphics.DrawString(company, TipFont, new SolidBrush(Color.Black), new Rectangle(256, 501, 185, 14));
                graphics.DrawString(lastdate, TipFont, new SolidBrush(Color.Black), new Rectangle(256, 557, 155, 14));
                i++;
            }
    此为绘图方法,在按钮事件里面调用的
      

  2.   

    按钮事件调用
    GBoxCustomer.Visible = true;//第一个panel显示
    painCustomer();//绘图到GBoxCustomer
    panel.Visible = true;//第二个panel,有几排按钮不能用timer,因为事件只能是人为触发的,大家帮忙看看
      

  3.   

    是重绘了吧,把绘图的代码放在paint()里面。你如果是按钮实现的话,就paint里面判断按钮是否被按下,然后绘制什么样的图。。