我在后台定义了TextBox和ComboBox控件,根据条件判断当点击DataGrid的单元格显示其中一个控件实现内容的修改,可是现在有一个问题,就是我的TextBox和ComboBox控件不支持箭头键,当按下箭头键时焦点会跳到旁边的单元格,请问如何解决这个问题?谢谢高手指点!

解决方案 »

  1.   

    说明:上面的问题是WinForm的DataGrid。
    另外还有一个问题:在Winform的DataGrid如何让它不显示能够新增加的那行?就是说我有多少内容就显示多少,不需要新增行
      

  2.   

    ((DataTable)DataGrid.DataSource).DefaultView.AllowEdit = false;
      

  3.   

    楼上这位大哥的方法不能解决我的问题啊,我只是要求DataGrid的单元格中控件能支持箭头键,而不是按下箭头键就在单元格之间移动。
    有哪位大侠知道的,请教交我 啊!多谢了。
      

  4.   

    在Winform的DataGrid如何让它不显示能够新增加的那行?就是说我有多少内容就显示多少,不需要新增行这个可以用 DataTable.DefaultView.AllowNew = false;
      

  5.   

    谢谢楼上的,这个问题我已经解决了。
    关键是我需要在其中的TextBox获得箭头键,而让DataGrid的cell之间不支持箭头键的移动。
      

  6.   

    键头的问题:
    你要从DataGrid继承一个类,在类写重载下面的方法
    protected override bool ProcessKeyPreview(ref Message m)
    {
        int WM_KEYDOWN=0x0100;
        Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode; 
       if(m.Msg == WM_KEYDOWN)
       {  
           if(keyCode == Keys.Down || keyCode == Keys.Up)
          {
    DataGridTableStyle curStyle = //获取当前样式,自己写
    if(curStyle != null)
    {
                if(curStyle.GridColumnStyles[this.CurrentCell.ColumnNumber] is DataGridTextBoxColumn)
       {
    return false;
       }
    }
         }
       }
       return base.ProcessKeyPreview(ref m);
    }10分太少了
      

  7.   

    MyLf(愿望树) :谢谢。
     我给帖子加分了:)