【问题标题】:how to make user control come to front of everything after button click on form按钮单击表单后如何使用户控件出现在所有内容的前面
【发布时间】:2018-08-05 02:47:30
【问题描述】:

我正在开发一款显示不同布局(硬度、机制、风格等)的游戏。为了显示这些不同的布局,我使用用户控件,如果单击按钮,这些控件将被发送到前面。我使用milline.BringToFront(); 将它们发送到前面。 Visual Studio 给了我一个错误,即“名称”在当前上下文中不存在。在谷歌搜索后,我在命令前添加了UCmilline milline = new UCmilline();。现在 Visual Studio 给了我 0 个错误,但是当我尝试单击表单中的按钮时,它不会将该 UC 带到前面

我希望在单击按钮后将名为“milline”的用户控件置于最前面。我的代码是这样的

    private void play(object sender, EventArgs e)
    {
        UCmilline milline = new UCmilline();
        milline.BringToFront(); /*brings my uc forward, at the start form is in front of my Uc*/
        MessageBox.Show("tere"); /*to check if button is working */
    }
}

我是否需要向UCmilline milline = new UCmilline(); 添加更多内容才能使其正常工作,还是需要向我的用户控件代码添加一些内容?

【问题讨论】:

  • 前面是指新窗口还是表单?
  • new UCmilline() 是一个新的控件实例。未添加到Controls 表单集合中。如果表单上有一个现有实例,您应该找到它,或者如果您要创建一个新实例并将其放在前面,首先您需要将它添加到Controls for 集合中。

标签: c# winforms visual-studio-2017


【解决方案1】:

您需要将您在play 事件中创建的millinie 实例添加到控件中,以便它显示在任何给定的表单/控件中。如果您在设计时添加了另一个UCmilline 实例,您可以只通过在类文件中的任何位置键入它的名称来访问它并使用 BringToFront() 方法。

【讨论】:

    【解决方案2】:

    我找到了解决问题的方法

    我的代码中总是使用错误的名称,我的 Uc 名称是 uCmilline1 而不是 UCmilline 或 Ucmilline1 现在很尴尬,因为这个问题已经有一个星期了,并且花了 5 到 8 个小时来解决这个问题

    【讨论】:

      猜你喜欢
      • 2017-10-27
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 2013-12-31
      • 2022-11-18
      • 2021-12-19
      • 2012-01-15
      • 1970-01-01
      相关资源
      最近更新 更多