我想完成一个功能,就是在窗口区域由用户添加预定义的图形对象。方式有点象ppt的作图。这些图形对象有相应的属性和事件。有点象控件但不是在程序设计阶段添加的,是用户在运行时添加。该对象可以被选中,删除。我本想用DGI+来实现,但gdi+只是绘制图形,无法使该图形成为一个对象。请教该使用何种技术可以达到这个效果? 自定义控件是否可以?请大家给一个解决的思路。谢谢

解决方案 »

  1.   

    那只能是控件啊,如果非要用gdi实现的话你要写大段的程序感觉不是很划算,你还是考虑用自定义控件吧
      

  2.   


    自己写一个控件,暴露一些属性。用户添加图形对象,就创建一个控件的实例,用PropertyGrid为用户提供修改属性的功能。
      

  3.   

    GDI+只是ui层表示。既然没有图形对象,那就自己写一层。一些类来表示图形的管理。
      

  4.   

     把对象当作一个PictureBox放到WinForm容器中。就可以随便画了。大小位置都是非常方便定制的。
      

  5.   

    定制一个MypictrueBox 继承于:PictureBox
    在该类里添加一个 System.Windows .Forms .ContextMenu 对象;
    为System.Windows .Forms .ContextMenu添加“清除“,”缩放“,”添加“等选项。
    添加一个鼠标右键事件处理函数,执行contextMenu.Show()方法。
    试试看吧,我没有测试过这种想法。但是做过类似的控件,这种情况应该可以实现的。
      

  6.   

    我并非是要picturebox具有清除或是缩放。我是要图形对象可以被删除或是移动。比如,我在作图区域画了一个圆。我希望能够把这个圆作为对象,可以修改,可以删除,可以响应事件。我觉得flyjimi的方法可能行。我要试试看。