Tag: 用户控件

对用户控件实例数量的上限(合理)限制

我有一个菜单,曾经是一个树视图控件,但现在我想让每个项目更具视觉效果,并为树中的每个对象添加更多信息。 我的第一个目的是创建一个表示项目的用户控件,并在运行时将它们添加到面板中。 这是一个很好的方法吗? 有时可能有超过一百件物品。 我知道理论上你可以在一个表单上拥有最多的控件,但这不是我主要关注的问题。 我关心的主要是表现。 我正在考虑的另一个方法是创建一个列表框并在onPaint方法中执行额外的操作。 但这似乎有点不稳定,有点太复杂,无法维护。 有什么想法吗? 编辑: 我已经通过向面板att form_Load添加200个usercontrol来测试usercontrol-approach,并且实际添加需要相当长的时间,但似乎没有任何性能问题。 滚动工作正常,我已经使每个用户控件可折叠,并且function性不会以任何方式滞后,即使面板中有大约一百以上和一百以下。 但仍然……我完全在这里追踪?

控件中的嵌入式窗体或用户控件的窗体

好吧,我有一个大型CRUD应用程序,它使用带有嵌入在其中的表单的选项卡,如此 – > public static void ShowFormInContainerControl(Control ctl, Form frm) { frm.TopLevel = false; frm.FormBorderStyle = FormBorderStyle.None; frm.Dock = DockStyle.Fill; frm.Visible = true; ctl.Controls.Add(frm); } 然后我在父表单的表单加载事件中调用以下 – > // Embedd the child form in the this Parent WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost); 这是我在这里回答我之前的问题。 随着我的进步,我不断得到这样的感觉,即多层嵌入式表格是等待发生的灾难,用户控件不断弹出。 有人能为我提供一些关于使用用户控件和嵌入表单的具体建议吗? 请参阅我之前的问题,了解这个问题的灵感。 这里 此外,还可以在此处找到我当前嵌入的表单布局的动态屏幕截图。 谢谢

动态用户控件在回发后获取并维护值

我有一个我构建的页面,它动态生成用户控件。 例如,用户控件有两个可以编辑的字段:SomeId和SomeData。 我希望能够基于UserControlObject设置这些值。 当我之后读取控件时,我希望能够从控件返回UserControlObject并将数据库值设置为该值。 我在使值保持最新状态时遇到一些麻烦。 //Page public class SomePage { private List _MyUserControls; private void InitControls() { var controlsToBuild = SomeDatabaseCallToGetControlObjects(); foreach(MyUserControl control in controlsToBuild) { MyUserControl control = this.Page.LoadControl(“MyControl.ascx”) as MyUserControl; UserControlPlaceHolder.Controls.Add(myControl); _MyUserControls.Add(myControl); } } protected void Page_Init(object sender, EventArgs e) { InitControls(); } protected void SaveButton_Click(object sender, EventArgs e) { if (this.IsValid) { […]

Visual C#中用户控件的用途是什么?

用户控制 – 它们是否有特殊用途? 据我所知,它们与表单没有什么不同 – 它们具有相同的工具箱和function。 是否有适合使用表格的特定时间? 理解他们有什么好处会很有趣。

为什么我的自定义控件的Text属性不会出现在Properties窗口中?

我有一个inheritance自UserControl的用户控件。 它是一个按钮,所以我试图在按钮中创建文本,通过使用Text属性(如真实按钮)进行更改,而不是像_Text那样命名我自己的。 我有以下代码,但它不起作用(即它不会出现在属性窗口中)。 标签的名称是ContentPresenter public override string Text { get { return ContentPresenter.Text; } set { ContentPresenter.Text = value; } }

用户控制单击 – Windows窗体

我的Windows窗体上有自定义用户控件。 此控件上有几个标签。 我将在我的表单上动态显示这些控件的数组,其中包含不同的数据位。 我想要做的是知道当我点击它时选择了哪个用户控件。 当我单击用户控件上的空白区域时,这是有效的,但是,如果我单击用户控件上的任何标签,它将无法识别用户控件单击。 有关如何进行完全用户控制点击的任何想法,即使点击控件上的标签? 如果这个问题不明确,或者您需要更多信息,请发表评论。 我在c#中这样做。 谢谢!

我的控件是“这里不允许的,因为它没有扩展类’System.Web.UI.UserControl’”

所以我还有另一个面条(对我而言)。 我正在尝试在CMS中创建自己的自定义控件我只有部分源代码(即供应商提供给我的样本)。 基本上我已经创建了一个名为DataDefinitionContent的类,它扩展了ControlBase 。 现在,从我从元数据中获取的内容, ControlBase扩展了UserControl ,所以我认为这将在没有戏剧性的情况下运行。 任何人都可以解释为什么这可能不适合我? 我的课: public partial class DataDefinitionContent : ControlBase, ICustomControl { … Stuff } ControlBase: using System; using System.Web.UI; namespace CMS.Web { public class ControlBase : UserControl { … Stuff } } 我的ascx文件: 我得到的错误: 分析器错误消息:此处不允许使用’CMS.Admin.WebUI.CustomControls.DataDefinitionContent,CoA.Admin.WebUI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null’,因为它不扩展类’System.Web。 UI.UserControl”。 第1行:<%@ Control Language =“C#”AutoEventWireup =“true”CodeBehind =“DataDefinitionContent.ascx.cs”

动态加载的Web用户控件隐藏在回发上

我有一个Web自定义控件 并在Default.aspx页面上 并在Default.aspx.cs上 protected void btnPost_Click(object sender, EventArgs e) { WebUserControl1 uc = (WebUserControl1)Page.LoadControl(“~/WebUserControl1.ascx”); PlaceHolder.Controls.Add(uc); } 当我们从下拉列表中选择任何项目时,它会回发并且控件会从页面中隐藏 所以请帮助我们如何防止隐藏 谢谢

使用对象列表填充UserControl Gridview

我有一个名为“Reasons”的对象列表,其中包含两个属性“Code”和“Text”。 我想用它来填充Gridview的UserControl。 但是,我不明白如何将gridview链接到原因列表,并实际设置从对象中使用哪些数据。 我假设方法是将数据源设置为List,但是,这不起作用,因为它似乎用任何行填充gridview。 有没有更好的方法来解决这个问题?

带项目/数据模板的WPF自定义控件

我知道如何在WPF中创建自定义用户控件但是如何才能使某人能够提供ItemTemplate? 我有一个用户控件,它是几个其他WPF控件的混合,其中一个是ListBox。 我想让控件的用户指定列表框的内容,但我不知道如何传递该信息。 编辑:接受的答案适用于以下更正: