none
在点击DataGridView的列进行排序时候的问题 RRS feed

  • 常规讨论

  • 现在在DataGridView里面有3个列 column1 column2 column3,
    column1和column2在点击列后,自动排序 column3使用如下方法排序
    在事件 dataGridView_ColumnHeaderMouseClick 里面写入代码 按照指定的业务逻辑
    排序,现在的问题是 column1和column2 在点击排序后在列标题有一个灰色的三角号,但是在
    column3的列的标题却没有这个灰色的三角号,有办法让它出现么?
    我现在的感觉就是这个灰色的三角号是DataGridView控件自动排序时候产生的,而在
    ColumnHeaderMouseClick事件执行代码后,该三角号就不会产生。有办法解决么?
    谢谢。

    2010年2月24日 4:26

全部回复

  • 使用 SortGlyphDirection 属性手动设置排序的标志符号

    http://msdn.microsoft.com/zh-cn/library/ms171608(VS.80).aspx

    努力+方法=成功
    2010年2月24日 6:02
  • TO  Raymond Tang
    版主 能不能职业点,这个问题还只是 在探讨 没有解决,就给标记为OK了阿,别人 就不给回答了。
    2010年2月24日 8:48
  • ColumnHeaderMouseClick 代码如下:
            private void dataGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
            {
                DataGridViewColumn clickedColumn;

                try
                {
                    if (!e.ColumnIndex.Equals(5))
                    {
                        return;
                    }
                    else
                    {                   
                        clickedColumn = dataGridView.Columns[e.ColumnIndex];
                       
                        if (sortFlag)
                        {
    //执行自定义排序                       
    SortBylink(clickedColumn, true);
                            sortFlag = false;                       
                        }
                        else
                        {
    //执行自定义排序                       
    SortBylink(clickedColumn, false);
                            sortFlag = true;                       
                        }
                    }            
                }
            }

    2010年2月24日 9:41