Я пишу свое первое приложение, используя Visual Studio и Windows Forms (. NET Framework).
Например, я хочу отображать прямоугольники в 4 рядах по 15 в столбцах.
Для отображения я использовал flowLayoutPanel, где я настраивал:
AutoScroll = True;
Dock = Fill;
WrapContents = False;
Проблема в том, что мои рисунки выходят за пределы поля flowLayoutPanel. Я sh смогу прокрутить мои рисунки в этой панели FlowLayout.
Подскажите, пожалуйста, как сделать полосу прокрутки для рисунков? Может быть, лучше использовать панель для рисования?
Мой код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace MyProgram
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void showD1ToolStripMenuItem_Click(object sender, EventArgs e)
{
// refresh area
flowLayoutPanel1.Refresh();
}
private void showD2ToolStripMenuItem_Click(object sender, EventArgs e)
{
using (Graphics g = this.flowLayoutPanel1.CreateGraphics())
{
// refresh area
flowLayoutPanel1.Refresh();
// pen color
Pen black = new Pen(Color.Black, 1);
float[] dashValues = { 4, 2 };
black.DashPattern = dashValues;
float rectWidth = 0.03f * Width, // permanent width of a single drawing
rectHeight = 0.2f * Height, // permanent height of a single drawing
x = 0.03f * Width, // position X frist drawing
y = 0.045f * Height; // position Y frist drawing
// columns
int colX = 15;
// rows
int rowY = 4;
for (int j = 0; j < rowY; j++)
{
for (int i = 0; i < colX; i++)
{
// single drawing
g.DrawRectangle(black, x, y, rectWidth, rectHeight);
x += 0.05f * Width; // horizontal distance between rectangles
}
x = 0.03f * Width; // horizontal distance between rectangles
y += 0.27f * Height; // vertical distance between rectangles
drawS = false;
}
black.Dispose();
}
}
private void flowLayoutPanel1_Paint(object sender, PaintEventArgs e)
{
}
}
}
введите описание изображения здесь
Спасибо за ответ!