【问题标题】:Add dynamic Buttons according to ListBox items根据ListBox项添加动态Button
【发布时间】:2021-10-18 04:32:15
【问题描述】:

我需要将 ListBox 项转换为动态按钮。意思是,我的工具有一个组合框,用于在包含文本链接的文件夹中显示文本文件。
当在 ComboBox 中选择项目时,会填充下面的 ListBox。
我想删除 ComboBox 并添加按钮。

如何在面板中动态添加按钮,变量TextWidth
如何处理动态Buttons的Click事件?

这是软件当前的工作方式:

我想更改如图所示的界面。
目前,我关心的是动态按钮功能以及如何将它们添加到面板中。
我需要这方面的帮助。

这是我需要做的:

【问题讨论】:

  • 这能回答你的问题吗? c# programmatically add controls adjacently?
  • 流布局面板。或者可以使用带有链接列的 datagridview(不是你想要的外观)
  • 如果面板的大小是恒定的,那么使用 FlowLayoutPanel 可以轻松实现该布局。否则,您可以使用 TableLayoutPanel,它允许灵活调整其子控件的大小。如果需要,您可以使控件跨越多个列。 -- 圆形按钮,如果您尚未使用第三方库,则需要从 Control 派生的自定义控件。您可以绘制一个定义透明控件的圆角部分的 GraphicsPath。
  • 我建议您首先在设计器中按照您想要的方式进行布局,然后您将获得一个完整列表,其中列出了在您的控件上设置哪些属性值(例如字体、边距、填充)您可以动态创建它们。

标签: c# winforms button dynamic-controls


【解决方案1】:

谢谢你们!它按照我的预期完成。我将 GunaFramework 用于圆角按钮。我在下面的代码中使用了动态按钮。

for (int i = 0; i < 5; i++)
            {
                Button button = new Button();
                button.Tag = i;
                button.AutoSize = true;
                
                button.Text = fNames[i].Split('\\').Last().Replace(".txt", ""); 
                button.Click += (s, c) => { your action; }; 
                FlowLayOutPanel.Controls.Add(button);
            }

【讨论】:

    猜你喜欢
    • 2011-03-24
    • 2012-03-19
    • 1970-01-01
    • 2017-10-11
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2023-03-12
    相关资源
    最近更新 更多