FlatStyle для Button использует UseMnemonic - PullRequest
0 голосов
/ 14 октября 2010

Я пытаюсь включить UseMnemonic на кнопке, чтобы у меня появился ампрасанд (&).Работает нормально, если я не установил кнопки flatStyle на System (все остальные flatstyles в порядке).

Этикетки отлично работают с тем же flatStyle, это, кажется, характерно для кнопок.

Кто-нибудь знает, почему это происходит или как-то позади?

В данный моментЕдинственное, о чем я могу думать, это игнорировать UseMnemonic, добавлять и дополнительные, и если они найдены.

Также еще кое-что странное, что иногда & заменяется на подчеркивание (_), но я пока не могувоспроизведите это по своему желанию ...

Это далеко не самый эффективный код, но кое-что, что я вместе проверил:

  public Form1()
    {
        InitializeComponent();
        this.label1.Text = "hello & goodbye";
        this.button1.Text = "1&2";
        this.label3.Text = this.button1.UseMnemonic.ToString();
        this.label4.Text = this.button1.FlatStyle.ToString();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        switch (count)
        { 
            case 0:
            case 1:
                this.label1.UseMnemonic = this.button1.UseMnemonic = false;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.System;
                count = 2;
                break;
            case 2:
                this.label1.UseMnemonic = this.button1.UseMnemonic = false;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Flat;
                count = 3;
                break;
            case 3:
                this.label1.UseMnemonic = this.button1.UseMnemonic = false;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Popup;
                count = 4;
                break;
            case 4:
                this.label1.UseMnemonic = this.button1.UseMnemonic = false;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Standard;
                count = 5;
                break;
            case 5:
                this.label1.UseMnemonic = this.button1.UseMnemonic = true;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.System;
                count = 6;
                break;
            case 6:
                this.label1.UseMnemonic = this.button1.UseMnemonic = true;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Flat;
                count = 7;
                break;
            case 7:
                this.label1.UseMnemonic = this.button1.UseMnemonic = true;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Popup;
                count = 8;
                break;
            case 8:
                this.label1.UseMnemonic = this.button1.UseMnemonic = true;
                this.label1.FlatStyle = this.button1.FlatStyle = FlatStyle.Standard;
                count = 1;
                break;   
        }


        this.label3.Text = this.button1.UseMnemonic.ToString();
        this.label4.Text = this.button1.FlatStyle.ToString();

1 Ответ

1 голос
/ 14 октября 2010

Не уверен, что я следую.Но чтобы амперсанд появился, нужно удвоить его.Исправить:

        this.button1.Text = "1&&2";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...