我越來越困惑。我設置了:從C中禁用的listview啓用滾動條#
this.listView1.Enabled = false;
當我做這個listview的滾動條也被禁用。我想在listview禁用時看到所有的listviewitems和滾動條。請給我一些建議。謝謝。
我越來越困惑。我設置了:從C中禁用的listview啓用滾動條#
this.listView1.Enabled = false;
當我做這個listview的滾動條也被禁用。我想在listview禁用時看到所有的listviewitems和滾動條。請給我一些建議。謝謝。
經過很多評論,我假設你的listview,因爲經常從很多不同的線程更新,閃爍。
如果是這樣,一種可能的解決方案是啓用DoubleBuffering;這個屬性無論如何是protected
只能從後代類訪問。
所以,你可以:
這可以解決您的問題。
using System;
using System.Windows.Forms;
class BufferedListView : ListView
{
public BufferedListView()
{
this.DoubleBuffered = true;
}
}
的想法是從this post採取SO。
@HùngLêXuân:我的回答對你有幫助嗎?你有沒有設法解決你的問題呢? – Marco
像魅力一樣工作。 :))感謝@Marco。 –
由於滾動條是控件本身的一部分,因此您無法滾動禁用的控件(因此它被禁用,所以...)。
如果要滾動而不是讓用戶選擇什麼,你可以這樣做
this.listBox1.SelectionMode = SelectionMode.None;
如果要恢復它,你可以將其設置爲SelectionMode.One單,或的一個其他選擇多選擇津貼。
另一個(imho過度複雜)選項正在使用戶繪製ListBox。
ListView沒有SelectionMode屬性。謝謝@alex –
您無法滾動禁用的控件 - 但如果您真的需要這樣的功能,請開發一個用戶控件。
Developing Custom Controls in C#
如果你有,請給一些代碼。感謝@Sujay Ghosh。 –
@HùngLêXuân我已經編輯了我的答案,並提供了用戶控件和隱藏滾動條的鏈接。 –
也許如果你把你的ListView一個面板,您可以啓用通過在面板控制
的問題是建立
ScrollBars="Auto"
滾動裏面:你爲什麼要禁用列表視圖?你需要用戶不能編輯項目嗎?或者是什麼?據此,我們可以提供不同的解決方案... – Marco有幾種方法可以在[本] [1]文章中實現這一點。 [1]:http://stackoverflow.com/questions/529121/wpf-disable-listbox-but-enable-scrolling – JayP
對不起@Marco我不需要不同的解決方案。我編碼多個線程在列表視圖上,我想看到它的所有listviewitem更改。 :) –