用户在listview上选中一行后,点击 "报表" 按钮, 由于生成报表有一定时间, 为了清楚现在用户正在执行listview中的哪一行,在生成报表期间,不让用户再改变listview的选中的行. 如何实现??本来想把enabled属性设置成false,但这样,listview又不能特出显示选中的行!

解决方案 »

  1.   

    //在生成报表期间,不让用户再改变listview的选中的行. 如何实现用子类
      

  2.   

    在用户点击报表按键后,在事件中保存listview的ItemIndex属性值,然后进行你的报表生成工作..这样就算用户选中了其它行,你的程序也不会出错啦!不过还是子类化窗口更可靠.SetWindowLong hWnd,GWL_WNDPROC,address of 你的处理过程 'hWnd是listview的句柄
    在你的子类化过程中不处理 相关消息 就可以了
      

  3.   

    谢谢,这个问题用了别的方法解决.
    希望高手看看这个问题,分一起给!
    http://community.csdn.net/Expert/topic/4619/4620000.xml?temp=.4568598
      

  4.   

    一窗體,一按鈕,
    一Listview,報表式,一列。Private Sub Command1_Click()
    Me.Enabled = False
    Dim i As Long
    For i = 1 To 10000
        ListView1.ListItems.Add , , CStr(i)
        ListView1.ListItems(i).Selected = True
        ListView1.SelectedItem.EnsureVisible
        DoEvents
    Next
    Me.Enabled = True
    End Sub