在程序中修改后,界面上不能刷新显示。跟踪进去看,实际上该变量已经被修改了。同样动态修改column的text就可以刷新显示。奇怪?!
困扰好长时间了。。sigh

解决方案 »

  1.   

    现代码不在身边,大概形式如下,语法可能有不对,回头再更新
    1.声明一个sublistitem 
    2.sublistitem = listview.items[i].subitems[j]
    3.sublistitem.text = ...
    这个小东东很好测,来帮忙改改,多谢诸位
      

  2.   

    调用listView.Invalidate();使其重绘
      

  3.   

    好像invalidate没有什么作用.
    但是我发现一个土办法,还没有找到原理所在.就是设完一行的所有sublistitem后,设置此item的text,就会自动刷新.呵呵,怪异.示例代码,假设设立一个2*2的listview:
    //以下修改column,马上就能刷新
    ColumnHeader colHead ;
    for(int col = 0; col < 2 ;col++ )
    {
        colHead = lstView.Columns[col];
        colHead.Text = Convert.ToString(col);
    }
    //这里修改SubItem
    ListViewItem.ListViewSubItem lstSubItem;
    for(int row = 0 ;row < 2  ;row++ )
    {
        for(int col = 0; col < 2 ;col++ )
        {
    lstSubItem = lstView.Items[row].SubItems[col];
    lstSubItem.Text =  Convert.ToString(col);
        }
    }
    //不知道触发了什么事件,开始更新
    for(int row = 0 ;row < 2 ;row++ )
    {
        lstView.Items[row].Text = lstView.Items[row].Text;
    }
    但是这样如果在一个大一点的表格中,会出现整个表格全部刷新闪烁一遍,性能不好.即使使用BeginUpdate和EndUpdate也一样,大侠们再议.