创建基本控件设计器
本文关键字:控件 创建 | 更新日期: 2023-09-27 17:55:46
我正在尝试遵循演练:
演练:为 Web 服务器控件创建基本控件设计器
基本上我已经创建了一个带有 asp.net Razor 4的新网站
并添加了以下代码:
using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Drawing;
using System.Web.UI;
using System.Web.UI.Design;
using System.Web.UI.Design.WebControls;
using System.Web.UI.WebControls;
namespace Samples.AspNet.CS.Controls
{
public class SimpleCompositeControl : CompositeControl
{
private String _prompt = "Please enter your date of birth: ";
public virtual String Prompt
{
get
{
object o = ViewState["Prompt"];
return (o == null) ? _prompt : (string)o;
}
set
{
ViewState["Prompt"] = value;
}
}
public virtual DateTime DOB
{
get
{
object o = ViewState["DOB"];
return (o == null) ? DateTime.Now : (DateTime)o;
}
set
{
ViewState["DOB"] = value;
}
}
protected override void CreateChildControls()
{
Label lab = new Label();
lab.Text = Prompt;
lab.ForeColor = System.Drawing.Color.Red;
this.Controls.Add(lab);
Literal lit = new Literal();
lit.Text = "<br />";
this.Controls.Add(lit);
TextBox tb = new TextBox();
tb.ID = "tb1";
tb.Text = DOB.ToString();
this.Controls.Add(tb);
base.CreateChildControls();
}
[Designer(typeof(SimpleCompositeControlDesigner))]
public class SimpleCompositeControl : CompositeControl
public class SimpleCompositeControlDesigner : CompositeControlDesigner
{
// Set this property to prevent the designer from being resized.
public override bool AllowResize
{
get { return false; }
}
}
}
为什么我得到的类型或命名空间设计不存在?
需要向项目添加程序集引用。在解决方案资源管理器中,右键单击"引用"->"添加引用"-">程序集"->"框架"->,然后选中"System.Web
"旁边的框,然后单击"确定"将该 DLL 添加到项目中。
对System.Design
做同样的事情。
编辑:为网站执行此操作。当您将.cs
文件添加到网站解决方案时,Visual Studio 可能会提示您将此文件移动到 App_Code
文件夹,假设您答应答应答应。然后右键单击该文件夹并单击添加引用以添加System.Design
因为默认情况下System.Web
包含在网站中。