在C#中的WinForms遮蓋力虛線周圍的TrackBar控制大綱,有沒有辦法不顯示虛線的焦點外框,顯示周圍的TrackBar控制正在使用的時候嗎?選擇時
詳細說明:本大綱看起來有點俗氣給我,所以我只是拍攝的美學沒有表現出來。
感謝,
亞當
在C#中的WinForms遮蓋力虛線周圍的TrackBar控制大綱,有沒有辦法不顯示虛線的焦點外框,顯示周圍的TrackBar控制正在使用的時候嗎?選擇時
詳細說明:本大綱看起來有點俗氣給我,所以我只是拍攝的美學沒有表現出來。
感謝,
亞當
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);
}
}
這將阻止控件被鍵盤調整,因爲它會阻止它獲得焦點。 – 2015-04-10 10:29:17
感謝這一個一百萬。我到處尋找這個答案。在我的情況下,這與分類的TabControl一起工作。 – 2012-02-21 02:31:52
任何有興趣在翻譯該代碼爲其他語言時,C當量將是'的SendMessage(手柄,WM_UPDATEUISTATE,MAKEWPARAM(UIS_SET,UISF_HIDEFOCUS),0)'。 '過程TdmlTrackBar.WM_SETFOCUS(VAR消息::TWMSetFocus)像在Delphi一個魅力 – 2015-03-24 17:59:07
尼斯:)工作; 開始 繼承; SendMessage(Handle,$ 128,1 shl 16 + 1,0); end;' – 2016-04-15 14:05:49