Visual Studio-C#を使用してWindowsフォームでAltキーを押さなくても、コントロールに下線付きのホットキーを常に表示することはできますか?
フォームのコントロールに常に文字の下に「_」の下線を付ける必要がある場合にのみ、特定の時間があります。したがって、それを実行するためのコードだけがあればよいでしょう。
Windowsの設定で、ショートカットとホットキーの下線を常に表示することもできますが、それが必要なのは特定の時間だけです。
Visual Studio-C#を使用してWindowsフォームでAltキーを押さなくても、コントロールに下線付きのホットキーを常に表示することはできますか?
フォームのコントロールに常に文字の下に「_」の下線を付ける必要がある場合にのみ、特定の時間があります。したがって、それを実行するためのコードだけがあればよいでしょう。
Windowsの設定で、ショートカットとホットキーの下線を常に表示することもできますが、それが必要なのは特定の時間だけです。
WinFormsを使用していると仮定すると、基盤となるWin32メカニズムに依存できるはずです。そしてそれがWM_UPDATEUISTATEメッセージです。ドキュメントには次のように書かれています。
アプリケーションはWM_UPDATEUISTATEメッセージを送信して、指定されたウィンドウとそのすべての子ウィンドウのUI状態を変更します。
したがって、トップレベルウィンドウのハンドルにメッセージを送信できます。UIS_CLEARの下位ワードwParamとUISF_HIDEACCELの上位ワードを渡す必要がありwParamます。
これはかなり大雑把なサンプルコードです。私のC#の専門知識は非常に限られていることを覚えておいてください。
public partial class Form1 : Form
{
    private const uint WM_UPDATEUISTATE = 0x0128;
    private const uint WM_QUERYUISTATE = 0x0129;
    private const uint UIS_CLEAR = 2;
    private const uint UISF_HIDEACCEL = 0x2;
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_HandleCreated(object sender, PaintEventArgs e)
    {
        ClearHideAccel();
    }
    private void ClearHideAccel()
    {
        UIntPtr wParam = (UIntPtr)((UISF_HIDEACCEL << 16) | UIS_CLEAR);
        NativeMethods.SendMessage(this.Handle, WM_UPDATEUISTATE, wParam, IntPtr.Zero);
    }
}
internal class NativeMethods
{
    [DllImport("User32", SetLastError = true)]
    public static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, UIntPtr wParam, IntPtr lParam);
}