SQL2005相信大家都用过
而且他的数据显示也应该是用DataGridView做的  
当你点击存储格的时候它自动进入的编辑模式 也是就EditMode设置为EditOnEnter
但你当马上点击行首的时候它的EdieMode又成了
EditOnKeystrokeOrF2(當儲存格具有焦點而按下任何英數按鍵或 F2 鍵時,編輯即會開始)
而且如果你此时存在CurrentCell的时候且它已进入编辑模式
你点该行的行首时,它会自动把退出编辑模式,但当前CurrentCell不变,有个虚线框住它我很想实现这个的功能,因为我觉得它做的太好了,我通过了各种办法都没达到,而且我对DataGridView的运用是非常的熟,来这看看有没人能解决,大家可以通过我描述的自己开数据库试试。

解决方案 »

  1.   

    UP,关注
    我想你的记录下单元格,或者坐标
     具体观察Excel的规律
      我想是那样实现的,你能记录下来就之需要判断就搞定
      

  2.   

    很难解决么? 
    两个方案
    1。gridview 把每个列都 设置成模板列,里面放个textbox注意其html id的绑定
    2。 其他的就好办了web的话用 js控制,winform的话 更简单了方案2
    用现有的空件
    infragistcs
    dvexprience
    component one
    自己去往上查很多两个方案我都实际采用过 
    懒点或时间紧用 2, 想多练手用1
    更牛比的干脆不用控件自己用html画
      

  3.   

    两个方案 
    1。gridview 把每个列都 设置成模板列,里面放个textbox注意其html id的绑定 
    2。 其他的就好办了web的话用 js控制,winform的话 更简单了 方案2 
    用现有的空件 
    infragistcs 
    dvexprience 
    component one 
    自己去往上查很多 两个方案我都实际采用过 
    懒点或时间紧用 2, 想多练手用1 
    更牛比的干脆不用控件自己用html画
      

  4.   

    自己写CellEnter和RowHeaderMouseClick事件,控制在进入单元格的时候进入编辑模式        private void dataGridView1_CellEnter(object sender, DataGridViewCellEventArgs e)
            {
                dataGridView1.BeginEdit(true);
            }        private void dataGridView1_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                dataGridView1.EndEdit();
            }
    但是这样有两个问题,当编辑一个单元格时点击行头,再点回该单元格不会触发CellEnter。但是再重复一次却又可以了,很奇怪。
    另外一个问题在点行头选择其他行时,第一个单元格会先进入编辑状态,然后又恢复正常,过程很明显。为了解决这2个问题再处理CellBeginEdit和CellClick事件:
            private void dataGridView1_CellBeginEdit(object sender, DataGridViewCellCancelEventArgs e)
            {
                e.Cancel = ((ButtonState)typeof(DataGridViewHeaderCell).GetProperty("ButtonState", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(dataGridView1.Rows[e.RowIndex].HeaderCell, null)) == ButtonState.Pushed;
            }        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                dataGridView1.BeginEdit(true);
            }因为不能控制DataGridView事件触发的顺序,所以只能自己用麻烦一点的办法。