【问题标题】:How to create a custom non-rectangular GroupBox? [closed]如何创建自定义非矩形 GroupBox? [关闭]
【发布时间】:2011-06-05 18:18:50
【问题描述】:

是否可以制作如下图所示的GroupBox

如果无法使用本机控件,是否有任何免费的自定义控件可能支持此功能?

【问题讨论】:

  • 哈哈。否。更改控件的布局。否则,您将使用ControlPaint.DrawBorder3D 自己绘制它。人们创建他们认为实际上有用的控件;这不是。
  • @HPT: 1. 这是一种奇怪的控制,所以几乎没有人考虑过它。 2.通过问“我怎么做X”,我们对你的技能一无所知。您以前创建过自定义控件吗?还是在安装 Visual Studio 时需要我们牵手?如果 oyu 对有用的答案感兴趣,请发布有用的问题。
  • @peterchen:我不认为 SO 是为了在某些过程中牵手,我只是在寻找一个想法来使开发或实施更快,是的,我知道如何编写自定义控件。
  • 为什么投票结束这个问题?对我来说,这似乎是一个有效的选择。

标签: c# winforms visual-studio-2010 user-interface user-controls


【解决方案1】:

不,框架中不存在这样的控件。您可以通过创建一个继承 GroupBox 的控件来自己制作一个。

【讨论】:

  • @HPT:恕我直言,这是一个完全合理的答案。他向您建议了一个有效的解决方案,您不能假装人们甚至为您实现了某些东西或找到了可能不存在的东西......
  • @HPT,您确实问“如何制作这样的 GroupBox?”,我回答了这个问题。您不是在询问有关实施的具体问题,因此我无法回答。另外,我知道它在框架中不存在,所以我想为您提供该信息。至于你的其他问题 - 你可以轻松地谷歌它。我没有发现任何真正有用的东西。
  • 在我问这个问题之前我用谷歌搜索过。 SO 是一群专业人士,他们有时比谷歌更了解!
  • 如何创建 X?您可以通过创建 X 来自己创建它!非常有用的答案!
  • @Alex:你的意思是 driis 给了你一个很好的答案。无论如何,人们问不清楚和模棱两可的问题,然后斥责那些无论如何都试图帮助他们的人,这并不罕见。这就是为什么我最近开始发布比答案更多的 cmets,因为太多人希望你能读懂他们的想法,而当你做不到的时候会生气。
【解决方案2】:

没有像您制作的图像那样的控制,我有一个非智能解决方案,但可能符合您的要求,

创建一个UserControl 并在其中放入两个GroupBox 控件,然后它们之间会有一条线,您可以通过在其上方添加一个不带None 的面板来隐藏它,而不是BorderStyle

然后您将拥有此用户控件:

我知道它没有你想要的那么聪明,但它可能比从头开始绘制一个并放松主题更容易。

您还可以创建一个标题属性来将垂直组合框反映为用户控件的标题

public string Title
{
    get { return groupBox1.Text; }
    set { groupBox1.Text = value; }
}

祝你好运!

【讨论】:

  • 我立即对那些暗示他们的解决方案“非智能”的答案很感兴趣。我只是不知道这种阴谋是否是一件好事
  • 嗯,它可能会解决问题,但我不会采用这种方法,我会绘制一个自定义控件。既然你是我的朋友,我不会投反对票:P
【解决方案3】:

你不会找到这样的控件。您可以自己制作一个,Control.Region 属性可以让您创建一个非矩形控件。您必须自己绘制轮廓和标题,在 OnPaintBackground 覆盖中这样做。

但是,实际上,这个控件作为一个可重复使用的控件并不会很有趣,它可能在其他表单或项目中使用。请记住,它只需要看起来像用户的组框。由于无论如何您都必须自己编写绘图代码,因此只需在表单的 Paint 事件中执行此操作。如果由于单选按钮而确实需要一个框,请改用 Panel 。请牢记 Form.AutoScaleMode 属性,您不能对行位置进行硬编码。

【讨论】:

  • 是否可以将GroupBox.Region 属性设置为GraphicsPath 并使用ControlPaint 绘制边框?
  • 并非如此。 GraphicsPath.Widen() 走错路了,不能缩小。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2019-08-06
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 2010-10-23
  • 1970-01-01
相关资源
最近更新 更多