Знак подчеркивания в текстовом свойстве кнопки не отображается - PullRequest
5 голосов
/ 05 мая 2011

В моих программах на C # WinForms у меня есть несколько кнопок, и я назначил им несколько ярлыков.ярлыки работают нормально, но подчеркивание в текстовом свойстве кнопки не отображается, пока пользователь не нажмет клавишу ALT.Как я могу изменить это поведение по умолчанию?

Ну, это мое подчеркивание

Button1.Text = "&EDIT";

Спасибо.

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Я нашел эту статью, в которой используется P / Invoke:

http://www.tompuleo.com/2010/05/force-c-to-always-show-keyboard.html

В ней объясняется, как включить это поведение для каждого приложения.

Отссылка:


[System.Runtime.InteropServices.DllImport("user32.dll")]
private static extern int SystemParametersInfo(int uAction, int uParam, int lpvParam, int fuWinIni);

private const int SPI_SETKEYBOARDCUES = 4107; //100B
private const int SPIF_SENDWININICHANGE = 2;

[STAThread]
static void Main()
{
    // always show accelerator underlines
    SystemParametersInfo(SPI_SETKEYBOARDCUES, 0, 1, SPIF_SENDWININICHANGE);

    Application.Run(new MainForm());
}
3 голосов
/ 05 мая 2011

Это общесистемная настройка Windows, которая не имеет ничего общего с вашей программой.

...