Ограничить обработчик событий в определенных столбцах Datagridview

Я пытался ограничить отслеживание EventHandler в определенных столбцах Datagridview, но не смог этого сделать.

private void dataGridView1_EditingControlShowing(object sender,     
DataGridViewEditingControlShowingEventArgs e)
    {

 if (this.dataGridView1.CurrentCell.ColumnIndex==0) 
        {
            if (e.Control is TextBox) 
            {
                TextBox dgvEditBox  = e.Control as TextBox;
                dgvEditBox.TextChanged += new EventHandler(dgvEditBox_TextChanged);

            }

        }


    }



  private void dgvEditBox_TextChanged(object sender, EventArgs e)
    {
        //Extract the textbox control
        TextBox dgvEditBox = (TextBox)sender;
      //  TextBox dgvEditBox = new TextBox();

        //Insert the appropriate string
        if (dgvEditBox.Text.Length == 1)
        {
            if (dgvEditBox.Text == "B" || dgvEditBox.Text == "b")
            {
                dgvEditBox.Text = "Ball";
            }
        }    
    }

В приведенном выше коде предполагается, что я пытаюсь поместить текст "Ball" в столбец "0" datagridview1, но это

влияет на другие столбцы, например если я нажимаю «b» или «B» в столбце 1, это также возвращает «мяч» в столбце 1.

Чего я не хочу. Можно ли ограничить его столбцами «O» только указанным выше способом?


person mahesh    schedule 25.11.2010    source источник
comment
попробуйте достичь columnIndex и ограничить его в обработчике событий, например if(columnIndex == 0) //Не делайте..   -  person Serkan Hekimoglu    schedule 25.11.2010
comment
@Серкан Хекимоглу, извини, я тебя не понимаю. вы имеете в виду в dgvEditBox_textchange EventHandler?. Как ?. Можете ли вы объяснить подробно, пожалуйста.   -  person mahesh    schedule 25.11.2010


Ответы (1)


добавьте это в функцию dgvEditBox_TextChanged в последней строке вне блока if (dgvEditBox.Text.Length == 1);

dgvEditBox.TextChanged -= new EventHandler(dgvEditBox_TextChanged);
person Community    schedule 25.11.2010
comment
@HPT, да, это блестящая идея. Чтобы отозвать доступ к EventHandler. Добро пожаловать. - person mahesh; 25.11.2010