Я очень новичок в кодировании окон, и я пытаюсь сделать minipaint, который имеет три кнопки (круг, прямоугольник и линия), и когда он получает кнопку в качестве входа, она нарисует форму в панели. У меня есть эта форма классаКартина прямоугольника
class shape
{
public Color color { get; set; }
public int width { get; set; }
public int startx { get; set; }
public int starty { get; set; }
}
, который имеет цвет, ширина и стартовая позицию properties.then У меня есть этот класс прямоугольника, например:
class rectangle : shape
{
int length { get; set; }
int width { get; set; }
}
, который наследует свойство доли от класса формы. теперь я хочу напечатать прямоугольник в панели. Я знаком с DrawRectangle
методом, и я напечатал прямоугольник как ниже:
Pen black = new Pen(Color.Black);
Rectangle rect = new Rectangle(20,20,400,200);
private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawRectangle(black, rect);
}
, но я не знаю, как нарисовать прямоугольник из class rectangle:shape
. У меня также есть проблема с назначением значения из кнопки щелчка в прямоугольник. Вы можете помочь мне?
Вам нужно преобразовать MyRectangle в общий прямоугольник или просто выставить значения MyRectangle в массив точек, которые вы вычисляете из вашего startx/y и его длины, и использовать DrawPolygon. Я бы, вероятно, сделал метод в MyRectangle.GetRectangle(), который возвращает System.Drawing.Rectangle – Poody
, должен ли я сделать метод draw в классе прямоугольника? что-то вроде «void draw() {System.Drawing.Rectangle (startx, starty, length, width);}« но это не работает – sara
Я считаю, что ваше определение ширины в вашем классе формы должно, скорее всего, быть толщиной (так чтобы не путать с шириной в вашем унаследованном классе прямоугольника (и других). –