有谁知道是否可以通过编程方式确定System.Windows.Forms.TrackBar
的拇指尺寸。 (我所说的拇指是指你拖动的那部分!)
我知道您可以从 System.Windows.Forms.SystemInfo
类中获取诸如滚动条宽度之类的信息,但似乎没有任何关于轨迹栏的信息。
谢谢。
最佳答案
拇指大小可以通过发送 TBM_GETTHUMBRECT 来获取向 TrackBar
控件发送消息。无法直接从 C# 执行此操作,但您可以定义适当的 Win32 结构并 p/invoke SendMessage()
:
[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
public int Left;
public int Top;
public int Right;
public int Bottom;
}
[DllImport("user32.dll")]
static extern void SendMessage(IntPtr hwnd, uint msg, IntPtr wp, ref RECT lp);
private const uint TBM_GETTHUMBRECT = 0x419;
// Implemented as an extension method.
public static RECT GetThumbRect(this TrackBar trackBar)
{
RECT rc = new RECT();
SendMessage(trackBar.Handle, TBM_GETTHUMBRECT, IntPtr.Zero, ref rc);
return rc;
}
关于c# - 滑动条拇指尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5676750/