选中后,在轨迹栏控件周围隐藏虚线轮廓

在C#winforms中,是否有一种方法可以不显示在使用轨迹栏控件时显示的虚线焦点轮廓边框?

细节:这个轮廓对我来说看起来有点俗气,所以我只是为了不美观而拍摄美学。

谢谢,

亚当

ShowFocusCues对我不起作用,但这样做:

internal class NoFocusTrackBar : System.Windows.Forms.TrackBar { [System.Runtime.InteropServices.DllImport("user32.dll")] public extern static int SendMessage(IntPtr hWnd, uint msg, int wParam, int lParam); private static int MakeParam(int loWord, int hiWord) { return (hiWord << 16) | (loWord & 0xffff); } protected override void OnGotFocus(EventArgs e) { base.OnGotFocus(e); SendMessage(this.Handle, 0x0128, MakeParam(1, 0x1), 0); } } 

请参阅WM_UPDATEUISTATE上的文档,了解其工作原理(基本上发送一条消息,将愚蠢的东西从轨道栏上移开,获得焦点)。

我知道这是一个老问题但如果有兴趣的话,这会更简单:

 public class TrackBarWithoutFocus : TrackBar { private const int WM_SETFOCUS = 0x0007; protected override void WndProc(ref Message m) { if (m.Msg == WM_SETFOCUS) { return; } base.WndProc(ref m); } }