2010-11-25 6 views
0

Ich habe versucht, folgenden EventHandler in bestimmten Spalten von Datagridview einzuschränken, aber nicht zu tun.Beschränken Sie EventHandler in bestimmten Spalten von 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"; 
      } 
     }  
    } 

Der obige Code vorgeschlagen, dass ich „Ball“ Text DataGridView1 die „0“ Spalt zu setzen versuchen aber es ist

andere Spalten wie beeinflussen, wenn ich „b“ drücken oder „ B "auf den Spalten 1 als es ist auch zurück" Ball "auf den Spalten 1.

Was ich nicht will. Ist es möglich, es nur auf die oben genannten Spalten "O" zu beschränken?

+0

try column und beschränken es in Eventhandler zu erreichen wie if (column == 0) // Dont Do .. –

+0

@Serkan Hekimoglu, Sorry ich Sie nicht bekommen. Dein Mittelwert in dgvEditBox_textchange "EventHandler?. Wie?. Kannst Du bitte im Detail erklären. – mahesh

Antwort

1

fügen Sie dies zu Funktion dgvEditBox_TextChanged an der letzten Zeile außerhalb der if (dgvEditBox.Text.Length == 1) Block;

dgvEditBox.TextChanged -= new EventHandler(dgvEditBox_TextChanged); 
+0

@HPT, Ja Es ist die geniale Idee. Den Zugang von EventHandler zu widerrufen. Dein Welcome. – mahesh

Verwandte Themen