2010-12-08 26 views
2

我們的應用程序有一個標籤控件,顯示可變數量的選項卡。大多數情況下,有一些標籤,「標籤」隱喻簡單易用。可用於大量標籤的WinForms選項卡控件替換

但在極少數情況下(使用某些類型的數據時),我們可能需要更多的選項卡才能適應整個屏幕。當發生這種情況時,可靠的選項卡控件不再是一個好的用戶體驗。無論你做多行標籤還是小滾動按鈕,找到你想要的標籤都會變得非常頭疼。

Visual Studio的編輯器可以相對優雅地處理這種情況。它一次只顯示有限數量的選項卡(但很多將適合整個屏幕);如果您想要某些目前不可見的內容,則會顯示一個顯示完整列表的下拉按鈕。 是否有任何提供類似功能的第三方WinForms選項卡控件 - 一次只顯示幾個選項卡,另外還有一個下拉菜單?

實際上有時候,即使下拉列表太長而無法放在屏幕上,所以瞭解任何選項卡控件如何處理這些信息會很有幫助。一個滾動條(你可以將拇指快速拖到正確的鄰居)會很棒;所以會使用鍵盤進行增量搜索。

爲了這個問題的目的,假設用一些其他UI隱喻(例如左側的列表框)替換標籤不是一個選項。 (我們正在探索,但這不是什麼問題。)

回答

1

Infragistics有一個WinTab control可以定製做到這一點。如果將ShowTabListButton設置爲True,則會顯示下拉按鈕,其中顯示所有選項卡的列表;如果將ScrollButtons設置爲None並將ShowPartialTab設置爲False,則只會顯示儘可能多的選項卡。它也是非常高效的 - 我可以在不到一秒的時間內添加750個選項卡(而標準WinForms TabControl爲6秒,而DevExpress XtraTabControl爲43秒)。它甚至支持所有頁面共享的內容,這恰好是我們的應用程序需要的內容。

唯一的缺點是,當您單擊「選項卡列表」下拉菜單時,它會在下拉菜單中顯示列表。該菜單不支持使用鍵盤進行增量搜索;如果菜單比屏幕更高,則無法快速滾動 - 您只需按「向上滾動」和「向下滾動」按鈕,即可緩慢滾動。因此,當列表長度超過屏幕上顯示的長度時,此下拉菜單與通過一長串選項卡進行水平滾動一樣無法使用。

另一方面,有一個SpaceAfterTabs屬性,它允許您將空白空間留在最後一個選項卡的右側。在該空白區域放置一個組合框或其他類型的下拉控件是可能的,並且可以推出自己的,性能更好的溢出「菜單」。

2

Telerik有一個商業Winforms control library它有一個控件RadPageView。這可能與您在StripView模式下描述的行爲類似。儘管這個控件的圖書館價格昂貴。

DevExpress也有一個作爲其XtraEditors庫的一部分,名爲XtraTabControl。這有一個「額外的油漆風格模擬Visual Studio 2005選項卡式界面」,雖然沒有屏幕截圖的樣子。在this頁面上有一個屏幕快照,雖然它看起來不像你所需要的。

+0

我們有DevExpress - 它有一個類似於VS的皮膚,但它不會執行下拉溢出。Telerik看起來好像可以做我想到的事情(儘管你說它是昂貴的)。您是否碰巧知道Telerik在溢出下拉太高而無法在屏幕上顯示時工作得如何? – 2010-12-08 19:58:20

相關問題