把菜单命令中的绘图代码加到onpaint中

解决方案 »

  1.   

    加到onpaint中是可以,可是我不想窗体一启动绘图代码就执行,只有执行菜单命令后才执行.
        菜单部份代码简单如下:
        private void menuItem3_Click(object sender, System.EventArgs e)
        {
            Graphics cjg=this.CreateGraphics();
            Pen cjpen=new Pen(Color.Red);
            cjg.drawline(cjpen,100,100,200,200);
        }
      

  2.   

    我试了你的代码没错啊,除了
    cjg.drawline(cjpen,100,100,200,200);的那个d要大写……cjg.DrawLine(cjpen,100,100,200,200);
      

  3.   

    不知道你这个程序要实现什么功能
    一般画图软件是这样的:
    定义一个接口(IGraphicsObject)
    (抽象画图的一些属性,方法等,比如有Bounds属性,Draw(Graphics g)方法等)
    然后有一个ArrayList对象list
    在菜单命令里
       IGraphicsObject o = new Line();//Line画线的对象,实现了IGraphicsObject接口
       list->Add(o);
    在onpaint里面
     foreach(IGraphicsObject o in list)
     {
       o.Draw(e.Graphics);
     }
      

  4.   

    我在子窗体里加了个pictureBox1,并在里面绘图(直线)
    但打开主窗口的菜单后,被菜单挡了的直线都不见了
    我请教过老师,他说是窗口没重绘
    我试了很久,但也没弄对
    请哪位高手也给解决一下