c# - 将属性继承到自定义控件 C#

标签 c# asp.net ascx asp.net-customcontrol

我有一个自定义控件,它是用一堆标准 Windows asp 控件创建的。

问题:

是否可以将父控件的属性继承到自定义控件中,而不需要重新发明轮子?

例如,我有一个带有按钮、文本框和标签的控件。

通常我可以通过 Lable1.Text 访问该控件的属性,但是当这些控件放置在自定义控件中时,我如何访问它们而不单独封装该控件的所有属性。

我希望有像CustomControl1.Lable1.Text这样的东西,或者这是不可能的

如果我用这个 公共(public)标签 lbMovieName { 获取 { 返回 this.lbMoveName; } 设置{ lbMovieName = 值; } }

我得到了我需要的东西,但你能告诉我为什么我不应该这样做吗?

最佳答案

最简单的方法是通过公共(public)只读属性公开控件:

public Label MyLabel
{
    get { return this.Label1; }
}

但是,仅封装您想要公开的值绝对是一个更干净的解决方案,原因如下:

  1. 在这种情况下,您可以抽象出实际的控件类型,而不是绑定(bind)到 Label - 如果您公开该控件,则很难用 MyNewCoolLabel 替换 Label >,例如
  2. 您可能会暴露更多您想要的内容 - 客户端可以更改标签的显示属性等。

关于c# - 将属性继承到自定义控件 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15836918/

相关文章:

c# - 第二次尝试时 TcpClient 无法读取

c# - 全屏WPF应用程序充当操作系统

c# - SignalR 服务器在客户端连接时立即关闭连接

javascript - 如何从 ascx 的代码隐藏中访问 javascript 变量?

asp.net-mvc-3 - MVC3 Razor : Is it Possible to Render a Legacy ASCX?

javascript - 同一页面上的更多 ascx 实例

c# - 从 Visual Studio 安装项目安装 SQL Server 和 .NET Framework

c# - PostgreSQL + C# :Design Time Support in VS2008

javascript - 设置列表框的滚动位置

c# - 在 ASP.NET MVC visual studio 开发服务器中设置启动路径