How can i make WinForms TabPage header width fit it's title?

前端 未结 3 689
青春惊慌失措
青春惊慌失措 2021-01-12 22:23

How can i make WinForms TabPage header width fit it\'s title? Here is the problem.

\"enter

3条回答
  •  谎友^
    谎友^ (楼主)
    2021-01-12 23:04

    The native Windows tab control allows overriding the default minimum tab width. Sadly that capability is not exposed in the TabControl wrapper class. That's fixable though. Add a new class to your project and paste the code shown below. Compile. Drop the new control from the top of the toolbox onto your form.

    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);
    }
    

提交回复
热议问题