关于自定义控件弹出“未能完成操作。无效的FORMATETC结构”。

重做放牛娃 2010-04-30 11:06:54
刚开始学习自定义控件,把MSDN中的代码粘贴了下来,生成了一个类,代码如下:
using System;
using System.ComponentModel;
using System.Security.Permissions;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ControlLibrary
{
class WelcomeLabel : CompositeControl
{
public virtual string Text
{
get
{
string s = (string)ViewState["Text"];
return (s == null) ? string.Empty : s;
}
set
{
ViewState["Text"] = value;
}
}

protected override void RenderContents(HtmlTextWriter writer)
{
writer.WriteEncodedText(Text);
if (Context != null)
{
string s = Context.User.Identity.Name;
if (s != null && s != string.Empty)
{
string[] split = s.Split('\\');
int n = split.Length - 1;
if (split[n] != string.Empty)
{
writer.Write(", ");
writer.Write(split[n]);
}
}
}
writer.Write("!");
}
}
}

可当我要把这个控件从工具箱拖到测试界面时出现了“未能完成操作。无效的FORMATETC结构”的错误,不知是何原因??
...全文
598 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunhxyz333 2010-07-23
  • 打赏
  • 举报
回复
重新添加了一次,好了,谢谢3楼
重做放牛娃 2010-04-30
  • 打赏
  • 举报
回复
tks!问题以解决,class前要用Public修饰
wiki14 2010-04-30
  • 打赏
  • 举报
回复
一般情况下为:
1)自定义控件类没有使用public修饰符;

2)自定义控件类从Control类继承(应该派生自WebControl);

3)在工具箱中添加项目之后,原控件dll移动了位置(删掉工具箱项目重新添加即可);
wiki14 2010-04-30
  • 打赏
  • 举报
回复
类定义前面少了个"public"
「已注销」 2010-04-30
  • 打赏
  • 举报
回复
public class WelcomeLabel : CompositeControl
使用public 访问修饰符

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧