读书人

用户控件怎么在Visual Studio的属性窗

发布时间: 2012-12-15 15:16:03 作者: rapoo

用户控件如何在Visual Studio的属性窗口中显示事件列表?
在代码的控件事件列表里有了,但在设计里连事件列表都看不到,期待有人解答



[解决办法]
代码:


using System;
using System.ComponentModel;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using HLGeneric;

[DefaultProperty("GradeId"),
DefaultEvent("GradeChanged"),]
public partial class Controls_GradeDropDown : UserControl
{
protected void Page_Init(object sender, EventArgs e)
{
if (!IsPostBack)
{
//databind
}
}

public int GradeId
{
get { return ddl.SelectedIndex; }
set { try { ddl.SelectedValue = value.ToString(CommonTools.CI); } catch (IndexOutOfRangeException) { } }
}

public bool AutoPostBack
{
get { return ddl.AutoPostBack; }
set { ddl.AutoPostBack = value; }
}

[Category("Action"), Description("GradeChanged"), Browsable(true), DisplayName("GradeChanged")]
public event EventHandler GradeChanged
{
remove { ddl.SelectedIndexChanged -= value; }
add { ddl.SelectedIndexChanged += value; }
}
}

[解决办法]
试试,把Category("Action")删除
[解决办法]
不会,帮顶一下!
[解决办法]
引用:
试试,把Category("Action")删除


那行东西就是出不来才加的
[解决办法]
不会,帮顶一下!
[解决办法]
应加上如下代码
protected void OnGradeChanged(EventArgs e)
{
if (base.Events != null)
{
EventHandler handler = (EventHandler) base.Events[RuntimeHelpers.GetObjectValue(GradeChanged)];
if (handler != null)
{
handler(this, e);
}
}
}
[解决办法]
引用:
应加上如下代码
protected void OnGradeChanged(EventArgs e)
{
if (base.Events != null)


{
EventHandler handler = (EventHandler) base.Events[RuntimeHelpers.GetObjectValue(GradeChanged)];
if (handler != null)
{
handler(this, e);
}
}
}


报错:事件“Controls_GradeDropDown.GradeChanged”只能出现在 += 或 -= 的左边

里面代码注释掉之后事件列表里也没有显示出来
[解决办法]
把代码切换成design或者split就出来了

读书人网 >.NET

热点推荐