在C#中绘制线条

时间:2011-12-28 10:23:48

标签: c# winforms graphics lines

我是C#新手,在我的作业中遇到了问题。

我在'Form1.cs'中有一个名为panel3的小组。

现在,我有一个名为'Staff'的类,我想在Staff中添加一个方法来在彼此之下绘制一系列线。这些行必须添加并显示在panel3中(在Form1.cs中找到)。

我该怎么办?谢谢。

我在“Staff.cs”中有类似的内容:

我的问题是我将如何在Form1_Load事件中调用它?我应该传递哪些参数?

我希望'Draw'方法在'Form1.cs'中的panel3中绘制线条。

感谢。

修改

非常感谢你的帮助:)我已经解决了,谢谢你:))

1 个答案:

答案 0 :(得分:1)

  1. 覆盖Staff类中的OnPaint事件
  2. 创建staffIndex属性 - 然后您可以直接在“属性”窗口
  3. 中对其进行编辑
  4. 编译项​​目 - 人员控制工具箱中的apears
  5. 将您的员工控件拖放到表单上。

  6. public class Staff : Panel
    {
        public const int kOffset = 30;
        public const int kSignatureOffset = 25;
        public const int kStaffSpacing = 70;
        public const int kBarSpacing = 7;
        const int kNumMeasuresOnAStaff = 4;
        public const int kStaffInPixels = 800;
    
        public int staffIndex { get; set; }
    
        public Staff()
        {
        }
    
        protected override void OnPaint(PaintEventArgs e)
        {
            int yPos = kOffset + staffIndex * kStaffSpacing;
            for (int bars = 0; bars < 5; bars++)
            {
                e.Graphics.DrawLine(Pens.Black, 0, yPos, kStaffInPixels, yPos);
                yPos += kBarSpacing;
            }
        }
    }