Tôi đang triển khai một ứng dụng cần kéo và thả hộp hình ảnh trong một bảng. Hộp hình ảnh được thêm động từ chương trình và vì vậy tôi đã đặt thuộc tính autoscroll thành true trong bảng điều khiển.Nhưng khi Tôi đã kéo ra các hộp ở dưới cùng trong bảng điều khiển kích thước bảng điều khiển đã giảm. Tôi đã đặt autosize tài sản sai trong panel.The bảng điều khiển được cập cảng trong một panel.I muốn thiết lập kích thước của bảng điều khiển tại thời gian chạy. Làm thế nào tôi có thể đạt được điều này.Thay đổi kích thước của bảng điều khiển động
public form1(int[,] dummy, int columnSize, int rowSize)
{
this.dummy= dummy;
numOfColumns = columnSize;
numOfRows = rowSize;
getData();
addIds = addIdArray;
data = mylist;
InitializeComponent();
//panel1.MinimumSize = new Size(columnSize * 40, rowSize * 40);
//panel1.Height = rowSize * 40;
//panel1.Width = columnSize * 40;
//panel4.Height = rowSize * 40;
//panel4.Width = columnSize * 40;
int x, y;
Structures.EmptyRectSpace space = new Structures.EmptyRectSpace();
for (int i = 0; i < data.Count; i++)// set picture boxes
{
space = (Structures.EmptyRectSpace)data[i];
x = space.startingJ;
y = space.startingI;
int h, w;
h = space.length;
w = space.width;
p = new PictureBox();
p.Width = w * 40;
p.Height = h * 40;
p.BackColor = Color.DarkGreen;
p.Image = Properties.Resources.v;
p.BorderStyle = BorderStyle.FixedSingle;
p.Name = addIdArray[i].ToString();
p.Location = new Point((x + 1 - w) * 40, (y + 1 - h) * 40);
this.panel1.Controls.Add(p);
}
foreach (Control c in this.panel1.Controls)
{
if (c is PictureBox)
{
c.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
}
}
this.panel1.DragOver += new System.Windows.Forms.DragEventHandler(this.panel1_DragOver);
panel1.DragOver += new DragEventHandler(panel1_DragOver);
panel1.DragDrop += new DragEventHandler(panel1_DragDrop);
panel1.AllowDrop = true;
panel2.AllowDrop = true;
foreach (Control c in this.panel2.Controls)
{
c.MouseDown += new MouseEventHandler(pictureBox1_MouseDown);
}
this.panel2.DragOver += new System.Windows.Forms.DragEventHandler(this.panel2_DragOver);
panel2.DragOver += new DragEventHandler(panel2_DragOver);
panel2.DragDrop += new DragEventHandler(panel2_DragDrop);
}
Đây là hàm tạo của biểu mẫu chứa bảng điều khiển. Khi nó tải các hộp hình ảnh phải được thêm vào bảng điều khiển và có kéo thả các sự kiện của bảng điều khiển được thực hiện.
Xin vui lòng cho tôi một bàn tay giúp đỡ ..
Đây có phải là Web, WinForm hoặc WCF/Silverlight không? Lớp kiểm soát thực tế bạn đang sử dụng là gì? Bạn đang nói rằng bạn muốn thiết lập kích thước chỉ một lần? – Blanthor
Câu hỏi rất phù hợp! Tôi cho rằng đây là trong Windows Form ... –
Một vài gợi ý: Di chuyển các mục ban đầu của bạn (* int [,] dummy, int columnSize, int rowSize *) bên ngoài constructor ứng dụng của bạn và thực hiện tất cả khởi tạo và làm việc của bạn * sau * 'InitializeComponent()' - nếu không, một số dữ liệu của bạn có thể được khởi tạo với dữ liệu không hợp lệ. – jp2code