C#需要有关表单导航的简单问题的建议

时间:2011-02-10 13:56:48

标签: c# .net winforms wizard

我需要模拟一个与安装任何软件时看到的界面类似的表单。有下一个和后退按钮,用户输入的所有信息仅在他/她单击完成按钮时处理。
当用户点击后退按钮时,向他/她显示先前输入的信息。
当用户点击下一个按钮时,向他/她显示下一个屏幕。所有显示的信息都以一种形式显示。

我需要向用户展示3个部分。

  • 第1部分 - 按下一个按钮将显示第2部分
  • 第2节 - 按后退按钮将显示第1部分,按下一个按钮将显示第3部分
  • 第3部分 - 按上一个按钮将显示第2部分,按结束按钮将处理第1,2和3部分中输入的所有信息。

目前正计划实施下列解决方案:

  1. 创建一个表单
  2. 添加第1部分的所有元素并创建下一个按钮事件,该事件将隐藏第1部分中显示的所有元素,包括按钮并显示所有元素第2部分。
  3. 为第2部分的后退按钮创建按钮事件,使其隐藏第2部分中的所有元素(包括按钮)并显示第1部分中的所有元素以及下一个按钮以隐藏第2部分中的所有元素,包括按钮和显示第3节中的所有要素
  4. 为第3部分创建类似的按钮事件
  5. 是否有比上述更好的解决方案。如果是,请描述方法。我们将非常感谢您提供的任何帮助。

5 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

实现此目的的一种方法是使用选项卡控件并隐藏选项卡,以便用户无法在它们之间导航,而是控制以编程方式从一个选项卡移动到下一个选项卡。

我使用KryptonNavigator控件,因为它提供了许多不同的模式,可以很容易地隐藏选项卡,以便只显示选项卡内容等。但是,应该可以隐藏标准选项卡控件的选项卡。

KryptonNavigator

答案 2 :(得分:0)

您可以为三个不同的屏幕创建自定义控件,然后您可以将这3个控件添加到表单中,从而更容易隐藏/显示相应的控件。

或者,您可以创建三个单独的表单,然后按顺序显示表单并在程序Main()函数中执行操作,而不是使用表单作为启动对象。像

static void Main()
{
  Form1 f1 = new Form1();
  if (f1.ShowDialog() == DialogResult.OK) 
  {
    // do actions
    // show next form
    // etc.
  }
}

答案 3 :(得分:0)

您可以使用usercontrol结构来实现此类行为。您可以添加一个简单的面板控件,并根据按下的按钮更改面板的内容。您只需使用yourPanel.Controls.Add(your_user_control)更改面板内容即可。 因此,可以在winform上实现不同的控制集。

由于

答案 4 :(得分:0)

是的,就像iain说的那样,向导控制可能是你最好的选择,但如果不起作用,请尝试寻找MultiView或Accordian控件。他们制作的控件专门用于隐藏/显示表单上的部分,因此您不必从表单到表单,因此您始终保持在相同的范围内。使字段填充更容易。