none
datagridview允许列改变列宽,当鼠标变成双向箭头时,当前列的状态如何表示 RRS feed

  • 问题

  • 请教一下各位高手,一个datagridview允许列改变列宽,当鼠标指向某列,变成双向箭头时,当前列的状态如何表示,columns[i].state总是报错啊
    dyx9010
    2010年2月7日 6:44

答案

  • 你好!
         你可以用Cursor.Current属性来判断当前鼠标的类型
         if(Cursor.Current==Cursors.SizeWE)
    周雪峰
    • 已标记为答案 dyx9010 2010年2月9日 12:46
    2010年2月7日 17:07
    版主

全部回复

  • 你好!
         你可以通过ColumnWidthChanged事件来拦截这个动作!
          另外,你要获得列的什么状态?
    周雪峰
    2010年2月7日 8:15
    版主
  • 不知道你想要 做什么》?

             string aa= this.dataGridView1.Columns[1].State.ToString();
               MessageBox.Show(aa);
    努力+方法=成功
    2010年2月7日 8:16
  • 我想在鼠标变成双箭头的时候进行判定,如果这时候是想改变列宽,(即鼠标时双箭头),则进行一定的操作,否则,进行另外的操作
    dyx9010
    2010年2月7日 8:35
  • //你用ColumnWidthChanged事件判断列宽是否改变
            private void dataGridView1_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
            {
                MessageBox.Show(e.Column.State.ToString());
            }

    努力+方法=成功
    2010年2月7日 8:56
  • 我不一定要知道列的状态,我只需知道鼠标变成双箭头的时候如何进行在onmousedown函数里面判定


    dyx9010
    2010年2月7日 11:27
  • 我的意图是当鼠标是双箭头时,在onmousedown函数执行一段代码,当鼠标不是双箭头时,也就是不是改变列宽时,执行另外的代码,多谢

    dyx9010
    2010年2月7日 11:35
  • 你好!
         你可以用Cursor.Current属性来判断当前鼠标的类型
         if(Cursor.Current==Cursors.SizeWE)
    周雪峰
    • 已标记为答案 dyx9010 2010年2月9日 12:46
    2010年2月7日 17:07
    版主
  • 你先判断下鼠标是否被按下,然后判断鼠标的状态

      private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
            {
                if (Cursor.Current == Cursors.SizeWE)
                {
                    MessageBox.Show("1");
                }
            }


    你也可以尝试使用 
      private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                //MessageBox.Show("1");
            }
    努力+方法=成功
    2010年2月8日 1:18