加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 单击多个文本框的事件

发布时间:2020-12-15 23:56:39 所属栏目:百科 来源:网络整理
导读:所以我需要一种方法,当一个人点击8×8文本框网格中的文本框时,他们点击的文本框中的文本将更改为某些内容.我的网格设置在一个名为textboxes [,]的变量中,因此如果您键入文本框[0,0],您将获得网格中的第一个框.截至目前,由于我的知识非常有限,我有这个. for (
所以我需要一种方法,当一个人点击8×8文本框网格中的文本框时,他们点击的文本框中的文本将更改为某些内容.我的网格设置在一个名为textboxes [,]的变量中,因此如果您键入文本框[0,0],您将获得网格中的第一个框.截至目前,由于我的知识非常有限,我有这个.

for (int i = 0; i < 8; i++)
        {
            for (int j = 0; j < 8; j++)
            {

                textboxes[i,j].Click += new EventHandler(textboxes_Click);

            }
        }

然后,只要单击其中一个框,我就可以处理.如果你有更好的方法,我很乐意听到它.我只是不知道如何访问被点击的框,主要是文本.希望我已经解释得这么好了.感谢您的帮助!

-Lewis

解决方法

你的方法很好.您只需定义一些其他信息即可在事件中处理它,如下所示:

我们可以定义一个类来存储文本框位置:

public class GridIndex
{
    //stores the position of a textbox
    public int ipos { get; set; }
    public int jpos { get; set; }
}

你的代码片段被修改了:

for (int i = 0; i < 8; i++)
  for (int j = 0; j < 8; j++)
  {
    textboxes[i,j].Click += new System.EventHandler(this.textBox_Click);
    textboxes[i,j].Tag = new GridIndex() { ipos = i,jpos = j };
  }

然后你的处理程序:

private void textBox_Click(object sender,EventArgs e)
    {
        TextBox textBox = sender as TextBox;

        if (textBox != null)
        {
            //Here your have the text of the clicked textbox
            string text = textBox.Text;
            //And here the X and Y position of the clicked textbox
            int ipos = (textBox.Tag as GridIndex).ipos;
            int jpos = (textBox.Tag as GridIndex).jpos;   
        }
    }

编辑:我对代码做了一些更改,请查看.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读