簡體   English   中英

使用鼠標滾輪滾動ListView有時會否定滾動

[英]Scrolling ListView with mouse wheel occasionally negates scroll

我在使用Win32 listview時遇到了一些麻煩,我希望有人有一些智慧。 當滾動非常快(通過滾輪)時,有時候列表視圖會滾動,只會跳回到所選項目以便它在視圖中。 換句話說,列表撤消您的滾輪滾動,以顯示列表頂部/底部的所選項目。 我意識到這聽起來非常可疑,因為常見的控制措施已經被全世界毆打致死。

以下是您可以復制的方式:

  1. 在報告模式下加載一個列表視圖,大約有500個左右的項目(確切的計數無關緊要,你只需要幾個數據屏幕)。
  2. 選擇列表中的項目並記住您選擇的內容。
  3. 使用方向盤向下快速滾動列表(朝向您)。 我們正試圖盡快將所選項目滾出視圖。 您可能需要使用比通常在方向盤上使用更多的力。 這並不總是會發生。 您可能需要多次嘗試。
  4. 滾動將正常完成,或者它將在最后改變主意並將您拉回到所選項目在屏幕上的視圖。

常規和虛擬列表視圖都會發生這種情況。 我在Windows 7旗艦版上測試了Win32和C#。

我制作了一個展示行為的小型WinForms應用程序 (需要.NET Framework 3.5)。 如果您不想從陌生人(我明白)運行任意可執行文件,請創建一個新的WinForms應用程序,在報表模式中刪除listview,添加一個列,並在表單load事件中填充500個增加的整數:

private void Form1_Load(object sender, EventArgs e)
{
    for (int i = 0; i < 500; i++)
    {
        this.listView1.Items.Add(i.ToString());
    }
}

我注意到了這種行為,它似乎確實內置在列表視圖控件中。 我看不出任何有用的功能的原因。 我在Sysinternals論壇上創建了一個帖子 它可能有用。

“我意識到這聽起來非常可疑,因為共同的控制已經被全世界毆打致死。”

ListView並沒有被打死,但它仍然是生命支持。 使用不同的控件。

它是一個自定義列表視圖(覆蓋繪圖?)順便說一句,我(從我的理解)面對自定義列表框的相同問題,並在這里找到一些幫助:

http://aviationxchange.net/wikis/winforms/net-color-listbox.aspx (文檔末尾)。

希望這可以幫助。

我遇到了同樣的問題,但我認為我找到了原因:我使用的工具允許你配置鼠標按鈕( X-Mouse Button Control )。 通過禁用它,問題就像魔法一樣消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM