C# 如何将实际控件存储在列表中?
长话短说,我希望获取动态加载的usercontrols,并将它们粘贴到引用已加载的实际对象的列表中。所以我可以进入列表并从usercontrol中提取结果。我想使用mycontrol.GetResult(),然后它将引用该控件并从已填写的表单中获取结果,结果将作为字符串返回。我不希望它初始化同一类型的新控件,因为那时我将无法接收结果。有什么建议吗C# 如何将实际控件存储在列表中?,c#,asp.net,list,dynamic,C#,Asp.net,List,Dynamic,长话短说,我希望获取动态加载的usercontrols,并将它们粘贴到引用已加载的实际对象的列表中。所以我可以进入列表并从usercontrol中提取结果。我想使用mycontrol.GetResult(),然后它将引用该控件并从已填写的表单中获取结果,结果将作为字符串返回。我不希望它初始化同一类型的新控件,因为那时我将无法接收结果。有什么建议吗 谢谢 只需创建一个控件列表: var controls = new List<Control>(); foreach(var contr
谢谢 只需创建一个控件列表:
var controls = new List<Control>();
foreach(var control in Page.Controls)
{
controls.Add(control);
}
var controls=newlist();
foreach(Page.Controls中的var控件)
{
控件。添加(控件);
}
然后,您可以根据需要使用该列表引用每个控件(这是一个简单的示例…填充列表的代码很可能更复杂)。只需创建一个控件列表:
var controls = new List<Control>();
foreach(var control in Page.Controls)
{
controls.Add(control);
}
var controls=newlist();
foreach(Page.Controls中的var控件)
{
控件。添加(控件);
}
然后,您可以根据需要使用该列表引用每个控件(这是一个简单的示例…填充列表的代码很可能会更复杂)。谁以编程方式添加控件?页面还是用户控件?该组件可以做到这一点。否则,另一个技巧是假设用户控件动态加载其他用户控件。您可以为页面提供一个接口定义,比如具有列表类型的IDynamicControlHolder,并在动态控件(或其他地方)中执行
谁以编程方式添加控件?页面还是用户控件?该组件可以做到这一点。否则,另一个技巧是假设用户控件动态加载其他用户控件。您可以为页面提供一个接口定义,比如具有列表类型的IDynamicControlHolder,并在动态控件(或其他地方)中执行
因此,我已经创建了类似的代码,并将控件加载到列表中,但我不确定如何从放回对象的表单中获取结果。看到代码示例后,我意识到我已经在这样做了,所以必须有更好的方法来获得我想要的。我操纵了我现有的一个方法,现在当用户进入验证屏幕时,我使用它将结果加载到我的对象中。这很好,谢谢你为我确认我做得很好。因此我已经创建了类似的代码,并将控件加载到列表中,但我不确定如何将表单的结果放回我的对象中。看到代码示例后,我意识到我已经在这样做了,所以必须有更好的方法来获得我想要的。我操纵了我现有的一个方法,现在当用户进入验证屏幕时,我使用它将结果加载到我的对象中。这很好,谢谢你帮我确认我做得对。我有一个向导控件,它搜索目录并添加所有已删除的用户表单。因此,向导步骤是动态加载的,然后usercontrol被动态加载到向导步骤中。我已经有了一个列表,但它不包含控件,而只包含我为存储控件属性而创建的对象。“它不包含控件,而只包含对象”-我假设您所说的控件是指用户控件,而不是向导步骤。上面我给你的描述是一种自我注册的做事方式;只要页面实现了一个接口(需要返回一个名为DynamicControls的列表实例),OnLoad甚至OnInit中的用户控件就会自动注册。因此,向导步骤是动态加载的,然后usercontrol被动态加载到向导步骤中。我已经有了一个列表,但它不包含控件,而只包含我为存储控件属性而创建的对象。“它不包含控件,而只包含对象”-我假设您所说的控件是指用户控件,而不是向导步骤。上面我给你的描述是一种自我注册的做事方式;只要页面实现了一个接口(需要返回一个名为DynamicControls的列表实例),OnLoad甚至OnInit中的用户控件都会自动注册。