6

が付いた単純なWindowsフォームアプリケーションがありtabControlます。に3つのパネルがありtabControl、それぞれに5つのボタンがあります。最初のボタンセットのテキストはハードコーディングされていますが、最初のグループのボタンをクリックすると次のセットにデータが入力され、2番目のグループのボタンの1つをクリックすると、最後のグループでも同じことが起こります。TextAlign[デザイン]ビューで、各ボタンのプロパティを手動でに設定しましたMiddleCenter。ただし、アプリケーションを実行すると、中央のボタンセットのテキストが中央に配置されません。常にTopLeft整列しています。TextAlign次のように、プログラムでボタンテキストを設定するたびに、フォントサイズを変更し、プロパティを明示的に設定してみました。

private void setButtons(List<string> labels, Button[] buttons)
    {
        for (int i = 0; i < buttons.Count(); i++)
        {
            if (i < labels.Count)
            {
                buttons[i].Text = labels.ElementAt(i);
                buttons[i].TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
                buttons[i].Enabled = true;
            }
            else
            {
                buttons[i].Text = "";
                buttons[i].Enabled = false;
            }
        }
    }

この画像は結果を示しています: アライメントの問題

誰かが私が欠けているものについて何かアイデアを持っていますか?

4

4 に答える 4

4

ボタンに割り当てられているテキストをトリミングします。また、呼び出すことなく、インデックスでラベルを参照できますElementAt

private void setButtons(List<string> labels, Button[] buttons)
{
    for (int i = 0; i < buttons.Count(); i++)
    {
        Button button = buttons[i];

        if (i < labels.Count)
        {
            button.Text = labels[i].Trim(); // trim text here
            // button.TextAlign = ContentAlignment.MiddleCenter;
            button.Enabled = true;
        }
        else
        {
            button.Text = "";
            button.Enabled = false;
        }
    }
}
于 2013-01-23T15:54:06.040 に答える
2

UseCompatibleTextRenderingプロパティをtrueに設定してから、TextAlignプロパティを使用できます。

于 2017-08-05T09:32:31.770 に答える
0

中央の列に割り当てられたSQLテーブルの文字列は、実際nchar(50)にはではなくnvarchar(50)、問題を説明しています。テキストの割り当てに.Trim()を追加しましたが、見栄えが良くなりました。

于 2013-01-23T15:55:33.040 に答える
0

プロパティメニューからTextAlignを使用して、 MiddleCenterに設定できます...

これが機能しない場合は、ボタンのテキストが実際のボタン自体よりも大きくなります。フォントサイズをより低いベースサイズに再スケーリングするか、実際のボタンのパーセントサイズに再スケーリングする必要があります。

btnFunction.Font = new Font(btnFunction.Font.Name, Convert.ToInt32(btnFunction.Height * 0.3333333333333333));

これにより、ボタンのフォントがボタンの高さの3分の1になります。

于 2016-07-04T19:43:18.420 に答える