0

我有一個DataGrid,有幾列。其中之一是DataGridViewComboBoxColumn。本專欄中有很多項目 - 超過1000個 - 我需要所有這些項目。所以分組不是一種選擇 - 所有項目必須在那裏,用戶必須能夠從所有項目中進行選擇。 問題是,DataGridViewComboBoxColumn變得非常緩慢,當項目的數量約爲1000,以上。這個問題是微軟所熟知的,它可以追溯到Visual Studio 2005:http://connect.microsoft.com/VisualStudio/feedback/details/117024/datagridviewcomboboxcolumn-responds-very-slow-compared-with-the-stand-alone-combobox-controlDataGridViewComboBoxColumn很慢很多項目

問題仍然存在於Visual Studio 2010中。任何想法如何解決這個問題?

是否有可能用Data部分填充DataGridViewComboBoxColumn?我的意思是(這是功能完全在Access工作),當你點擊DataGridViewComboBoxColumn,一些項目被顯示(可以說,100項)。當您向下滾動到最新項目時,其他人將被加載(另一個100)等等。我沒有看到任何其他選項使DataGridViewComboBoxColumn工作更快?問題是,如何實現這一點?有沒有人遇到過這個問題?

Greetings,Frenky

+0

一般而言,您應該避免在ComboBox中加載超過50個項目,如果您有數百個項目無法使用...... –

+0

有了這樣龐大的數據,您是否可以將其顯示爲對話框表單並獲取選擇(您可以選擇顯示/隱藏表格),並且可以更方便,因爲有大面積可供選擇 – V4Vendetta

+0

ComboBox可與數千個項目一起工作,並且非常實用。 DataGridViewComboBoxColumn也可用於 - 可以說 - 約800項。以上是什麼,成爲一個痛苦的問題 - 它太慢了,你需要等待幾秒鐘才能打開。 – FrenkyB

回答

0

我假設您使用Windows Forms?如果可以切換到WPF,或者至少在Windows窗體應用程序中使用WPF數據網格(使用ElementHost)。

WPF可以利用虛擬化,並允許更多的項目沒有滯後(因爲它看起來沒有渲染的項目,幾乎和你所建議的一樣)。

+0

是的,我正在使用Windows窗體。我無法切換到WPF,因爲它是一個擁有10年開發經驗的大型項目。 – FrenkyB