动态创建Winform和Form控件时控件的布局问题

问题描述

|| 我从Web服务呼叫获得此响应。像这样
<Response>
<Control1 type = \"DropdownList\" value= \"USA,UK,Sweden,UAE\"/>
<Control2 type = \"Textbox\" value= \"Contries\"/>
<Control3 type = \"Button\" value= \"None\">
</Response>
基于此,我将其反序列化为
List<Controls>
。 现在,我需要能够基于这些控件动态创建Winform。我的问题是布局。我希望能够将它们很好地分隔开(如果可能,垂直对齐),让我们说成批5。所以,如果我需要15个控件,则我有3列和5行。 什么是实现这一目标的最佳方法?我知道我可以使用内置的定位属性(例如top,width等),但是也许有人在那里做的更好。     

解决方法

        我认为您应该使用TableLayoutPanel。您也可以阅读最佳实践以使用此控件。 使用以上文章中的TableLayoutPanel的好处之一:   将在运行时动态修改或生成的布局,例如具有根据首选项添加或减去用户可自定义字段的数据输入表单。     ,        所以基本上我会做这样的事情(可能对其他人有用)
Form op = new Form();
            FlowLayoutPanel panel = new FlowLayoutPanel();
            op.Controls.Add(panel);
            for (int i = 0; i < 10; i++)
            {
                Button b = new Button();
                b.Text = \"Button\" + i.ToString();
                panel.Controls.Add(b);

            }
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...