Я реализовываю приложение, которое должно перетащить поля изображения в панели. Поля изображения добавляются динамично из программы и таким образом, я установил свойство автопрокрутки на истинный в панели. Но когда я имею, вытаскивают поля в основе в панели, размер панели был уменьшен. Я поместил ложь свойства авторазмера в панель. Панель прикрепляется в другой панели. Я хочу установить размер панели во время выполнения. Как я могу достигнуть этого.
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);
}
Это - конструктор формы, которая содержала панель. Когда это загрузилось, поля изображения должны быть добавлены к панели и там перетащить события отбрасывания панели, реализованы.
Помогите мне..
Разве вы не можете добиться этого с помощью свойств Panel.Height и Panel.Width?
В противном случае, если вы хотите задать минимальный размер панели динамически, вы можете сделать это с помощью метода SetMinimumSize, если я не ошибаюсь. Это то, что вы ищете?
.