补充说明:也就是希望能得到Cell类似TextBox的textChange事件。

解决方案 »

  1.   

    如果你想得到Cell类似TextBox的textChange事件,那就要建一个模版列了。
      

  2.   

    问题是模版列DataGridColumnStyle也没有类似事件呀。
      

  3.   

    private void grd1_CurrentCellChanged(object sender, System.EventArgs e)
    {
    if (this.grd1.CurrentRowIndex < 0)
    return;
    System.Windows.Forms.DataGridCell cell = this.grd1.CurrentCell;
    // Gets the DataGridTextBoxColumn from the DataGrid control.
    DataGridTextBoxColumn oTextBoxColumn;
    // Assumes the CompanyName column is a DataGridTextBoxColumn.
    oTextBoxColumn = (DataGridTextBoxColumn)this.grd1.TableStyles[0].GridColumnStyles[cell.ColumnNumber];
    // Gets the DataGridTextBox for the column.
    DataGridTextBox oGridTextBox;
    oGridTextBox = (DataGridTextBox) oTextBoxColumn.TextBox;
    oGridTextBox.TextChange+= new System.EventHandler(this.YouTextChangeEvent);
    }
      

  4.   

    public class MyDataGridTextBoxColumn:DataGridTextBoxColumn
    {
    public MyDataGridTextBoxColumn()
    {
    this.TextBox.Leave += new EventHandler(OnTextBoxLeave);
    } private void OnTextBoxLeave(object sender,EventArgs e)
    {
    if(this.TextBox.Text.IndexOf("A")==0)
    {
    MessageBox.Show("不能以A开头");
    this.TextBox.Focus();
    this.TextBox.Select();
    }
    }
    }
      

  5.   

    模版列里面的控件在可视化界面可能添加不了,要在html代码中象asp那样手动添加!
      

  6.   

    埋单啦!特别感谢 desrie(leir),参与者有分^-^