none
listview 列头 图片的刷新问题。 RRS feed

  • 問題

  • 我按照custom header的例子,实现了表头有图片,并且

    点击列时,列头的图片能改变。

    例子如下:

    http://www.codeproject.com/Articles/4243/Customizing-the-header-control-in-a-ListView

    但是遇到如下问题。

    比如我先点了第1列,当我点第0列时,我希望第1列的图片消失。 我的办法是给第1列的

    ImageIndex设置为-1.

    但是有问题,第1列的图片在设置为-1之后,还是没有消失,必须鼠标移动到它上面才行。

    我调用listview的 Update Invalidate也解决不了。

    请高手指点。

    谢谢。

    我的代码如下:

    void myListView1_ColumnClick(object sender, System.Windows.Forms.ColumnClickEventArgs e)
            {
                //throw new System.NotImplementedException();
                // 检查点击的列是不是现在的排序列.
                if (e.Column == lvwColumnSorter.SortColumn)
                {
                    // 重新设置此列的排序方法.
                    if (lvwColumnSorter.Order == SortOrder.Ascending)
                    {
                        lvwColumnSorter.Order = SortOrder.Descending;
                        myListView1.Columns[e.Column].ImageIndex = 1;
                      
                    }
                    else
                    {
                        lvwColumnSorter.Order = SortOrder.Ascending;
                        myListView1.Columns[e.Column].ImageIndex = 0;
                      
                        myListView1.Update();
                    }
                }
                else
                {
                    //点击列不是现在的排序列
                    //将现在的排序列设置为没有图片
                    myListView1.Columns[lvwColumnSorter.SortColumn].ImageIndex = -1;
                   

                    // 设置排序列,默认为正向排序
                    lvwColumnSorter.SortColumn = e.Column;
                    lvwColumnSorter.Order = SortOrder.Ascending;
                    myListView1.Columns[e.Column].ImageIndex = 0;
                    myListView1.Update();
                }

                // 用新的排序方法对ListView排序
                this.myListView1.Sort();
                myListView1.Invalidate();

            }

    2012年3月21日 上午 11:46

解答

  • 我是用 API Macro ListView_SetColumn

    這比較穩定~


    論壇是網友平等互助 保證解答請至 微軟技術支援服務


    提問時,錯誤情境描述與錯誤訊息很重要,情境描述包含你做了什麼,預期的結果與實際發生的結果。一個最爛的問法範例:「我的電腦電腦怎麼不能開機?」誰知道你家是不是沒電還是你根本找不到電源鈕。

    • 已標示為解答 VCResearch 2012年3月23日 上午 06:01
    2012年3月21日 下午 02:25