У меня есть этот кодДинамические Winforms контролировать изменение размера
ShadedRoundedRectangle rect = new ShadedRoundedRectangle();
rect.Location = new Point(0, nextY);
rect.Size = new Size(200, 20);
rect.NewText = String.Format("{0} x {1} ({2} kcals)", ci.Amount, ci.Product.ItemName, ci.Amount * ci.Product.Calories);
panel1.Controls.Add(rect);
ShadedRoundedRectangle
является пользовательский элемент управления, который рисует заштрихованный прямоугольник с закругленными краями размером 200,20
как вы можете видеть. При добавлении rect
в коллекцию панельных элементов управления размер изменяется на 233, 23
.
Пользовательский элемент управления имеет 0,0,0,0
, определенный как для объектов padding
, так и для margin
, и я зациклен на том, почему это происходит.
Что такое настройки «Dock» и «Anchor»? Откуда вы знаете, что размер изменился? –
Для управления пользователем; 'Anchor' -' Top, Left 'и 'Dock'' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' – Intrepid
Я положил точку прерывания на строку 'panel1.Controls.Add (rect)', а затем перешагнул ее с помощью F10, открыл коллекцию 'Controls', используя отладчик VS, чтобы открыть объект' base', пока не найду ' Size' и увидел, что там было другое. – Intrepid