【问题标题】:Custom Control ClientRectangle自定义控件ClientRectangle
【发布时间】:2011-02-16 14:30:53
【问题描述】:

我正在创建一个 UserControl,它将作为 GUI 中其他控件的基类。

这样做的原因是我可以在控件周围绘制自定义边框。

Control 有一个 ClientRectangle 属性,它表示控件的客户区。 UserControl 将此设置为与控件的边界相同的大小。

因为我要在控件周围绘制自定义边框,所以我想修改 ClientRectangle,但是我似乎找不到这样做的方法。

以前有人做过吗?

谢谢!!

【问题讨论】:

    标签: c# winforms user-controls


    【解决方案1】:

    好的,

    经过一番搜索,我找到了这个页面:

    http://www.dotnetmonster.com/Uwe/Forum.aspx/dotnet-drawing/769/How-do-you-increase-the-nonclient-area-to-support-a-border

    帮助很大。

    但是,我不得不将 switch 语句中的检查更改为:

    ....
    switch (m.Msg)
    {
        case WM_NCCALCSIZE:
            if (m.WParam != IntPtr.Zero)
            {
                NCCALCSIZE_PARAMS csp;
    
    ....
    

    基本上有很多摆弄 Windows 消息和绘制非客户区的工作。它并不完美,也不会阻止在设计器中将控件布局到边框中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多