表格单元格事件处理程序

发布于 2024-10-26 04:51:21 字数 330 浏览 4 评论 0原文

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

我的第一个想法是使用现有的 Table 控件,给它 6 行和 5 列,并给所有 tablecell 对象一个唯一的 id。然后,我将继续向我自己定义的第一行中的每个单元格添加事件处理程序,以便当用户单击其中一个单元格时,我的代码将检查被单击的单元格下方的单元格并更改该单元格的背景颜色代表您在现实生活中插入的部分的单元格。

我的问题是,如何向 tablecell 对象添加事件处理程序,因为唯一的预定义事件是 DataBinding、Init、Load、PreRender 和 Unload,并且由于它们不符合我的需求,因此我需要创建自己的事件处理程序。有什么想法吗?

I am creating a small game of 4 in a row in C#.

My first thought was to use an existing Table control, give it 6 rows and 5 columns, and give all of the tablecell objects a unique id. I would then continue to add eventhandlers to each of the cells in the first row that I define myself, so that when a user clicks on one of them, my code would check the cells beneath the cell that was clicked and change the backgroundcolor of the cell that represents the piece that you inserted in real life.

My question is, how do I add a eventhandler to the tablecell object, since the only predefined events are DataBinding,Init,Load,PreRender and Unload, and since they dont fit my needs, I need to create my own. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

怪我闹别瞎闹 2024-11-02 04:51:21

普通的表格单元格没有 OnClick 事件。最简单的替代方法是在 表格单元格。当然,您也可以自己创建一个ClickableTableCell控件。这是一个非常简单的实现:

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);
    }
}

如果你想使用这个控件,你必须 首先在 aspx 页面顶部或在 web.config 中注册控件

A normal table cell doesn't have an OnClick event. The easiest alternative is to place a <asp:LinkButton>, <asp:Button> or <asp:ImageButton> inside the table cell. Of course, you can also create a ClickableTableCell control yourself. This is a very simple implementation:

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);
    }
}

If you want to use this control, you have to register the control first, either on top of the aspx page, or in web.config.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文