Рисование линий в C # - PullRequest
       12

Рисование линий в C #

0 голосов
/ 28 декабря 2011

Я новичок в C # и столкнулся с проблемой в моей домашней работе.

У меня есть панель в Form1.cs, которая называется panel3.

Теперь у меня есть класс с именем Staff, и я хочу добавить метод в Staff, чтобы нарисовать последовательность линий друг под другом. Эти строки должны быть добавлены и показаны на панели 3 (находятся в Form1.cs).

Как я могу это сделать, пожалуйста? Спасибо.

У меня есть что-то вроде этого в "Staff.cs":

Моя проблема в том, как я собираюсь вызвать его в событии Form1_Load? Какие параметры мне передать?

Я хочу, чтобы метод Draw рисовал линии в панели 3, найденные в Form1.cs.

Спасибо.

Редактировать

Большое спасибо за вашу помощь :) Теперь я решил это благодаря вам:)

1 Ответ

1 голос
/ 28 декабря 2011
  1. Переопределить событие OnPaint в вашем классе персонала
  2. Создать свойство staffIndex - затем вы можете редактировать его непосредственно в окне "Свойства"
  3. Скомпилировать проект - Управление персоналом появляется в Панели инструментов
  4. Перетащите элемент управления персоналом в форму.

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;
        }
    }
}
...