C# Tablecell事件处理程序

C# Tablecell事件处理程序,c#,event-handling,tablecell,C#,Event Handling,Tablecell,我正在用C#创建一个连续4个的小游戏 我的第一个想法是使用一个现有的表控件,给它6行5列,并给所有的tablecell对象一个唯一的id。然后我会继续向我自己定义的第一行中的每个单元格添加EventHandler,这样当用户单击其中一个时,我的代码将检查被单击的单元格下的单元格,并更改单元格的背景颜色,该单元格表示您在现实生活中插入的片段 我的问题是,如何将eventhandler添加到tablecell对象,因为唯一预定义的事件是数据绑定、初始化、加载、预渲染和卸载,而且它们不适合我的需要,所

我正在用C#创建一个连续4个的小游戏

我的第一个想法是使用一个现有的表控件,给它6行5列,并给所有的tablecell对象一个唯一的id。然后我会继续向我自己定义的第一行中的每个单元格添加EventHandler,这样当用户单击其中一个时,我的代码将检查被单击的单元格下的单元格,并更改单元格的背景颜色,该单元格表示您在现实生活中插入的片段


我的问题是,如何将eventhandler添加到tablecell对象,因为唯一预定义的事件是数据绑定、初始化、加载、预渲染和卸载,而且它们不适合我的需要,所以我需要创建自己的事件。有什么想法吗?

普通表格单元格没有OnClick事件。最简单的替代方法是在aspx页面顶部或web.config中放置

public class ClickableTableCell : TableCell, IPostBackEventHandler
{
    public event EventHandler Click;

    public override void RenderBeginTag(HtmlTextWriter writer)
    {
        Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(this, null));
        base.RenderBeginTag(writer);
    }

    public void RaisePostBackEvent(string eventArgument)
    {
        OnClick(new EventArgs());
    }

    protected void OnClick(EventArgs e)
    {
        if (Click != null)
            Click(this, e);
    }
}