作了一个简单的测试程序,在FORM1中加入一个TABCONTROL,在tabPage1上添加一个PictureBOx。
目的:在Tabpage切换tabpage1时,在   PictureBOx 自动绘制一个椭圆,切换到tabpage2时,绘制另一个椭圆。
结果:再PictureBOx 自动绘制的椭圆一闪而过;而切换到tabpage2时,成功绘制另一个椭圆。
源程序如下:请大家指点,谢谢!public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }        Graphics grPic;
        Graphics grPage;
        private void Form1_Load(object sender, EventArgs e)
        {
            grPic = this.pictureBox1.CreateGraphics();
            grPage = this.tabPage2.CreateGraphics();
        }        private void tabControl1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (this.tabControl1.SelectedIndex == 0)
            {
                grPic.DrawEllipse(Pens.Red, 10, 10, 100, 150);
               // 这个只能一闪而过。
            }
            else
            {
                grPage.DrawEllipse(Pens.Red, 110, 10, 100, 150);
                //这个可以显示
            }
        }
        private void pictureBox1_Paint(object sender, PaintEventArgs e)
        {
                grPic.DrawEllipse(Pens.Red, 10, 10, 100, 150);
            //仍然不成功        }
    }

解决方案 »

  1.   

    如果只有1个picturebox肯定是不行的
    有几个tabpage就要加几个picturebox
      

  2.   

    ...GDI+就可以搞定
     如果只是添加图片..属性设置下可以不?
     你需要变换的时候读取IMAGELIST里的索引
      

  3.   

    tabpage上的控件只属于它本身的  不可以共享哦  o(∩_∩)o...
      

  4.   

    解决了:
                Graphics  grPic  = null;
                Image image = new Bitmap(pictureBox1.Width, pictureBox1.Height);
                 grPic  = Graphics.FromImage(image);