创建一个包含/绘制图形的类?

时间:2011-01-13 05:11:37

标签: c# .net vb.net graphics gdi+

好的,我想创建一个处理特殊矩形图形的类。

在我的表格中,我希望有两个这样的特殊矩形。 所以,基本上,我需要在我的表单中使用该类的两个实例,对吧?

我设法初始化两个,好吧。但是,我究竟应该如何在一个班级中管理绘图/图形等,并将结果显示在我的表格中?

2 个答案:

答案 0 :(得分:3)

您需要弄清楚将这些概念放在一起的几个概念:

  • 您需要跟踪要绘制的对象。你部分在那里,但这通常是通过List(of ...)
  • 之类的集合来完成的
  • 您需要处理Form类的Paint事件(或Panel或Control或您想要在其中绘制的任何可视对象)
  • 您需要在Paint处理器
  • 中绘制对象
  • 每当应用程序的状态发生变化时,您需要对正在绘制的对象调用Invalidate以“强制”重新粉刷。

这是一个快速摘录:

     ' suppose you have:
     Private _myRects as New List(of Rectangle) ' populated elsewhere

     ' then you handle the paint event of a UI control
     Private Sub Control_Paint(ByVal sender As Object, ByVal e As PaintEventArgs) _
     Handles MyBase.Paint
        Dim g As Graphics = e.Graphics

        ' loop through your collection drawing each rectangle:
        for each rect As Rectangle in _myRects 
            g.FillRectangle(Brushes.Aqua, rect)
        next for

        ...more drawing as needed
    end sub

这是使用VB在.NET绘图上的pretty nice tutorial。如果您遵循它,您应该拥有所有可以做任何类型的2D .NET绘图的部分。 (这种乐趣直到第2页才开始,但不要跳过第1页!)

答案 1 :(得分:0)

您需要阅读的两件事情Developing Custom ControlsUsing GDI+ in Windows Forms

拿一把舒适的椅子和一杯好热的可可;你有很多阅读要做。