代码之家  ›  专栏  ›  技术社区  ›  phillipwei

C WinForms:高效显示多个控件

  •  13
  • phillipwei  · 技术社区  · 14 年前

    我正在构建一个包含15x15=225个按钮的控件,需要调整大小。因为它是一个网格,所以锚定和停靠不起作用。我尝试了TableLayoutPanel和处理调整大小事件来手动放置和调整控件的大小。在这两种情况下,调整大小都非常缓慢。当我手动处理布局时,在Resize函数中挂起/恢复布局没有帮助。

    是否有一些基本的东西可以改变以加快速度,或者这仅仅是本地控制的限制?我知道我可以从头开始构建一个自定义控件,处理单击并自己进行绘制——不过如果可能的话,我更愿意坚持使用本机控件。

    编辑

    我知道有很多按钮。我的问题是一个技术问题,而不是关于UI设计的问题。

    1 回复  |  直到 14 年前
        1
  •  7
  •   Rune Grimstad    14 年前

    不幸的是,WinForms不能同时显示这么多控件。

    如果我是在你的情况下,我会首先考虑我是否可以把表格分成几页。在许多情况下,用户也更容易理解。

    但在你的情况下,这似乎不是一个选择。你在做扫雷游戏吗?在这里,有一个可以点击的按钮网格。在这种情况下,我建议您使用自定义的所有者绘制的控件,在该控件中合并一个控件中的所有按钮。不要构建包含225个按钮的复合控件-这一点都没有帮助:-)

    最后一个选择可能是切换到WPF。WPF使用硬件加速渲染,因此速度可能更快,但使用如此多的控件甚至没有帮助。