Как увеличить размер флажка в WinForms?

Как я увеличиваю размер флажка в.Net WinForm. Я попробовал Высоту и Ширину, но она не делает увеличивает размер Поля.

32
задан Amitabh 2 July 2010 в 13:47
поделиться

1 ответ

Размер флажка жестко запрограммирован внутри Windows Forms, вы не можете с ним связываться. Один из возможных обходных путей - нарисовать флажок поверх существующего. Это не лучшее решение, поскольку автоматическое изменение размера больше не может работать как есть, а выравнивание текста запутано, но это исправно.

Добавьте новый класс в свой проект и вставьте код, показанный ниже. Скомпилировать. Перетащите новый элемент управления из верхней части панели инструментов в форму. Отрегулируйте размер элемента управления так, чтобы получить желаемый размер поля и убедиться, что он достаточно широкий, чтобы уместить текст.

using System;
using System.Drawing;
using System.Windows.Forms;

class MyCheckBox : CheckBox {
    public MyCheckBox() {
        this.TextAlign = ContentAlignment.MiddleRight;
    }
    public override bool AutoSize {
        get { return base.AutoSize; }
        set { base.AutoSize = false; }
    }
    protected override void OnPaint(PaintEventArgs e) {
        base.OnPaint(e);
        int h = this.ClientSize.Height - 2;
        Rectangle rc = new Rectangle(new Point(0, 1), new Size(h, h));
        ControlPaint.DrawCheckBox(e.Graphics, rc,
            this.Checked ? ButtonState.Checked : ButtonState.Normal);
    }
}
36
ответ дан 27 November 2019 в 20:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: