.net - 如何增加WinForms中复选框的大小?

标签 .net winforms

如何增加.Net WinForm中复选框的大小。我尝试了“高度”和“宽度”,但它不会增加Box的大小。

最佳答案

复选框的大小在Windows窗体内是硬编码的,您不能将其弄乱。一种可能的解决方法是在现有复选框的上方绘制一个复选框。这不是一个很好的解决方案,因为自动调整大小无法按原样工作,并且文本对齐困惑了,但是可以使用。

在您的项目中添加一个新类,并粘贴以下代码。编译。将新控件从工具箱的顶部拖放到窗体上。调整控件的大小,以便获得所需的框大小,并确保它足够宽以适合文本。

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);
    }
}

关于.net - 如何增加WinForms中复选框的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3166244/

相关文章:

c# - 如何在 WinCE Compact Framework 3.5 中标记用户控件的默认事件

c# - 日期时间如何工作以及如何在 Windows 窗体 ADO 实体中比较两个日期?

c# - 无需先注册 COM 服务即可构建 .NET COMInterop 项目

.net - 为什么在我的面向 .net framework 3.5 的 .net 项目中 System.dll 的版本是 2.x?

.net - WCF 服务可以像 WEB API 服务一样模块化吗?

c# - 是否使用线程从网络下载文件

c# - 如何增加 WinForms 中 ListViewItems 的 AutoPopDelay 值?

c# - 构建过程中出现错误 "The type or namespace name could not be found"

c# - 检查哪个对象调用了事件方法

c# - Rhino mock 命名期望