Jak mogę ustawić szerokość nagłówka WinForms TabPage na jego tytuł? Oto problem.Jak mogę ustawić szerokość nagłówka WinForms TabPage na jego tytuł?
6
A
Odpowiedz
10
Natywna kontrola zakładka Windows umożliwia przesłonięcie domyślnej minimalnej szerokości karty. Niestety ta możliwość nie jest widoczna w klasie pakowania TabControl. Można to naprawić. Dodaj nową klasę do swojego projektu i wklej poniższy kod. Skompilować. Rzuć nową kontrolę z góry przybornika na formularz.
using System;
using System.Windows.Forms;
class MyTabControl : TabControl {
protected override void OnHandleCreated(EventArgs e) {
base.OnHandleCreated(e);
// Send TCM_SETMINTABWIDTH
SendMessage(this.Handle, 0x1300 + 49, IntPtr.Zero, (IntPtr)10);
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
}
0
Musisz zmierzyć czcionek.
Spróbuj czegoś takiego:
Dim tabPage As New TabPage
Dim width As Integer = 0
Dim valueToMeasure As String = <Your title Here>
Dim g As Graphics = tabPage.CreateGraphics()
width = CType(g.MeasureString(valueToMeasure, tabPage.Font).Width, Integer)
Prawdopodobnie dodać bota na Extra dla obicia (szerokość = szerokość +10)
Zmieniano:
<tab>.width = GetTabWidth(<Title>)
Private Function GetTabWidth (Byval title as String) as Integer
Dim widthValue as Integer = 10 'Padding (Optional)
Dim tabPage as New tabPage
Dim g as Graphics = tabPage.CreateGraphics()
widthValue += Ctype(g.measureString(title, tabPage.Font).Width, Integer)
Return widthValue
End Function
3
Dzięki, Hans. Użyłem twojego kodu bez tworzenia klasy
//InitializeComponent
this.tabPresentations.HandleCreated += new System.EventHandler(TabControl_HandleCreated);
void TabControl_HandleCreated(object sender, System.EventArgs e)
{
// Send TCM_SETMINTABWIDTH
SendMessage((sender as TabControl).Handle, 0x1300 + 49, IntPtr.Zero, (IntPtr)4);
}
[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
Powiązane problemy
- 1. Jak ustawić tytuł DXRibbonWindow w jego centrum
- 2. Jak zmienić tytuł nagłówka QTableView
- 3. Pełny tytuł nagłówka FullCalendar
- 4. Jak ustawić pogrubiony tytuł na pasku akcji?
- 5. jak ustawić na tytuł CENTRUM w AlertDialog?
- 6. UITableView tytuł nagłówka zmiana koloru
- 7. Jak ustawić tytuł dla UIBarButtonItem?
- 8. Jak ustawić pole nagłówka na formularzu POST?
- 9. Ustawić tytuł działania elipsy na środek?
- 10. Jak ustawić metadane nagłówka w zakodowanym wideo?
- 11. ipython: Jak ustawić szerokość terminala
- 12. Jak ustawić maksymalną szerokość $ mdDialog?
- 13. Formularze Xamarin kontrolują kolor/tytuł paska nagłówka
- 14. Jak ustawić szerokość paska mapy?
- 15. Jak ustawić tytuł na docelowym kontroler widoku podczas prepareForSegue:
- 16. Android: Jak ustawić wygenerowany tytuł contextMenu?
- 17. Wielokrotny wybór na WinForms
- 18. Jak ustawić max-szerokość dijit.ToolTip?
- 19. Aktywna administracja: Jak ustawić tytuł strony?
- 20. Jak ustawić tytuł programu w python?
- 21. Jak ustawić tytuł za pomocą UITabbarsystemitem
- 22. C# TabControl TabPage Change
- 23. Jak programowo ustawić tytuł paska UINavigation?
- 24. etykieta nagłówka na stronie doxygen markdown powoduje, że tytuł nagłówka znika
- 25. Jak mogę zmienić czcionkę nagłówka JTable?
- 26. Jak można użyć ViewPropertyAnimator, aby ustawić szerokość na konkretną wartość?
- 27. Jak ustawić maksymalną szerokość wyjściową w numpy?
- 28. Jak mogę odtwarzać dźwięk w WinForms?
- 29. Jak ustawić szerokość wejścia dopasować tekst zastępczy szerokość
- 30. Oprawa OneWay na WinForms?
Dobra, mam to, co dalej? – clumpter
Proszę zobaczyć moją edycję powyżej –