datagrid的onkeypess 或者onkeydown 事件里面不行! 他没有触发这个事件!

解决方案 »

  1.   

    try:
    private void projectinfo_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {

    if(e.Item.ItemType==ListItemType.Item||e.Item.ItemType==ListItemType.AlternatingItem)
    { e.Item.Cells[5].Attributes.Add("onkeydown","javascript:alert('fd')");
    }
    }
      

  2.   

    不好意思 我可能说得不清楚! 我说得是winform里面的datagrid 
    就像一个表格
    他的cell可以录入数据 我想的特定列的cell里面按回车时弹出一个窗口 但是没有触法onkeydown事件
      

  3.   

    你加的那个onkeydown事件只是加到了datagrid上,并没有加入到里面的cell里。所以当你的焦点在cell里面时,并不会触发onkeydown事件。具体怎么实现你想要的结果,我也不知道,表示关注吧!
      

  4.   

    关于winform
    http://dev.csdn.net/develop/article/16/16273.shtm
      

  5.   

    protected override bool ProcessDialogKey(System.Windows.Forms.Keys keyData)
    {
    switch (keyData)
    {
    case Keys.Return:
    //在这里加代码.....
    break;
    }
    }
      

  6.   

    应加一点,你最好自己写一个继承一个datagrid的类.然后代码写在其中.
      

  7.   

    增加了CellKetDown事件,正是为了解决你这个问题的
    http://community.csdn.net/Expert/topic/3434/3434227.xml?temp=.2691309
      

  8.   

    回复人: allanli(若尘) ( ) 信誉:100  2004-10-15 15:21:00  得分: 0  
     
     
       增加了CellKetDown事件,正是为了解决你这个问题的
    http://community.csdn.net/Expert/topic/3434/3434227.xml?temp=.2691309
      
     
    是在2005里面增加了吗?
      

  9.   

    必须在整个窗体里面截获这个事件/// <summary>
    /// 截获回车事件
    /// </summary>
    protected override bool ProcessKeyPreview(ref System.Windows.Forms.Message m) 

    Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode; 
                
    if((keyCode ==Keys.Enter)&&(this.ActiveControl is System.Windows.Forms.DataGridTextBox ))
    {
    //你的代码
    return true;
    }
    return false;
    }
      

  10.   

    hbxtlhx(下着春雨的天) 的解决方法是对的。完全可行,我也是这样解决的。
      

  11.   

    DataGridTableStyle myTableStyle = new DataGridTableStyle( );
    myTableStyle.MappingName = myTableName;/初始化表样式 DataGridTextBoxColumn ColumnStyle = new DataGridTextBoxColumn();
    ColumnStyle.MappingName = myDataRow[0].ToString();
    ColumnStyle.HeaderText = myDataRow[1].ToString();
    ColumnStyle.NullText="";
    ColumnStyle.Width = 100;
    ColumnStyle.TextBox.DoubleClick += new EventHandler(ReportsTextBoxFormClickHandler);//这句就是加输入框的双击事件,也可以加其他事件
    myTableStyle.GridColumnStyles.Add(ColumnStyle);//列样式加到表样式里 myDataGrid.TableStyles.Clear();
    myDataGrid.TableStyles.Add( myTableStyle ););//表样式加到datagrid里
      

  12.   


    借楼主宝地问一下:
    to  CSTerry(Terry)  重写了这个方法之后。还需要在什么地方调用吗???