c# - 如何从 flowlayoutpanel 更改控件的属性?

标签 c# winforms user-controls flowlayoutpanel

假设您以编程方式添加控件并假设每个控件的名称相同,如何更改 flowlayoutpanel 中控件的属性?

例如这张图片显示有 2 个文本框和两个按钮, 我将如何更改按钮 2 的背景颜色?假设控件已在运行时添加。

alt text

foreach(Controls ctrl in flowlayoutpanel1.Controls)
{
//What should I put here?
}

最佳答案

嗯,最简单的方法是保留对您要添加的按钮的显式引用。否则你可以添加一个标签来区分它们(以防止 i18n 问题)。例如。您可以将“button2”的标签设置为“button2”,然后您可以使用:

foreach (Control ctl in flp.Controls) {
    if ("button2".Equals(ctl.Tag)) {
        ctl.BackColor = Color.Red;
    }

我假设你的问题是再次找到实际的按钮而不是设置背景颜色。您同样可以检查控件是否为按钮,其文本是否为“button2”,但如果文本可以根据 UI 语言更改,这可能不是一个好主意。

ETA:完全忘记了您也可以为此使用控件的 Name 属性。

如果您只想更改按钮的背景颜色以响应来自按钮的事件,您可以只使用事件处理程序的sender参数,虽然。

关于c# - 如何从 flowlayoutpanel 更改控件的属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3887892/

相关文章:

c# - 从 ScrollView ( subview )内部将 View 推送到导航 Controller

c# - Visual Studio 2010 调试器如何处理 XmlReader.Read 中的 XmlException?

c# - 我如何告诉 `ConcurrentDictionary.GetOrAdd` 不添加值?

c# - 将ASCII字符串转换为普通字符串C#

.NET Winform 自定义表单 - 需要返回 DialogResult 或以某种方式阻止异步事件

WPF 控件模板与用户控件

asp.net-mvc - 将 html 标记传递给 ASP.NET 用户控件

c# - try catch 在 WinForms 应用程序中无法正常工作

c# - 拖放 winform 控件

c# - 无法在静态上下文中访问非静态字段 'lblSystemStatus'