【问题标题】:Creating a form that updates when 'Next' button is clicked. (c#) [closed]创建一个在单击“下一步”按钮时更新的表单。 (c#) [关闭]
【发布时间】:2013-05-24 23:13:02
【问题描述】:

我正在尝试在 Visual Studio 中创建一个接收用户个人信息的表单。 目前它包含名字、姓氏和出生日期。我也有一个“下一步”按钮。

我想要做的是,当单击“下一步”按钮时,我希望表单有新的用户输入选项。就我而言,我希望表单具有地址、邮政编码和电话号码的新字段。如您所见,我正在描述您经常遇到的典型形式。我只是不知道如何实现它。我应该如何实施它?

【问题讨论】:

  • 您所要求的非常简单,有两种方法可以做到这一点。 1 您可以添加或创建一个全新的自定义表单,然后对其进行实例化,或者2 您可以使用带有隐藏字段的现有表单,并在其创建阶段调用它时,使这些字段可见。
  • @Sumo Track - 到目前为止你尝试过什么?
  • @DJ #1 听起来不错。但起初我虽然你可以在表单中有布局,所以当点击下一步时,它会移动到下一个布局。
  • @Mike C 好吧,老实说我不知道​​如何实现它。我是 C# 和 Visual Studio 的新手。
  • @SumoTrack 我理解,但是 StackOverflow 更适用于具有特定答案的特定编程问题。你的更开放,而且太笼统而没有正确的答案。您可以使用简单的 Google 搜索找到许多有关在所有平台上使用 C# 实现 UI 的资源。你会想回到 SO 并提出一个更像是这样的问题,“我正在使用 C# 构建一个 WPF 应用程序,并且在尝试编译时收到此错误。这是一些示例代码,我可能做错了什么?”

标签: c# forms user-interface visual-studio-2012


【解决方案1】:

在您的表单设计中,将基础层设为 TabControl,然后为每个“页面”创建选项卡。确保您的按钮不在标签页上,而是在基本表单上。然后,处理按钮单击,每次将选项卡切换到新的“页面”。使用int 类型的成员变量跟踪当前页面。

由于您没有提供代码,因此我会做一些假设,例如。 TabControl 被命名为“tabControl”,它有 n 个名为“tabPage_Page0”到“tabPage_Pagen”的页面。 Next 按钮的单击处理程序将如下所示:

private void NextButton_Click (Object sender, EventArgs e)
{
    switch (_currentIndex)
    {
        case 0:
            tabControl.SelectTab(tabPage_Page1);
            break;
        case 1:
            tabControl.SelectTab(tabPage_Page2);
            break;
        case n:  //whatever that last number really is
            tabControl.SelectTab(tabPage_Page0);  //wrap back to the first page?  or exit?
            _currentIndex = 0;
            return;
    }

    _currentIndex++;
}

我们经常使用类似的东西。然而,我们更进一步,创建了一个继承自 TabControl 的类,它提供了一个 HideTabs 成员,我们使用它来覆盖 DisplayRectangle() 并强制选项卡不可见。做一个漂亮干净的演示文稿。

【讨论】:

  • 标签式设计听起来很棒。肯定会去的。非常感谢。
猜你喜欢
  • 2013-08-22
  • 2014-01-26
  • 2016-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-25
相关资源
最近更新 更多