Windows窗体选项卡切换

时间:2011-04-15 18:08:33

标签: c# winforms

我在Windows Forms标签控件中有三个标签。目前在Tab1中,我有一个按钮,可以将信息保存在文本框中,并自动将tabcontrol.SelectedIndex更改为Tab2。 Tab2然后使用从tab1的文本框中保存的信息。

我希望每当用户更改tab1中的文本框时都会弹出一个消息框,但是然后手动单击tab2或tab3而不按下保存信息的按钮。

总而言之,我有它所以单击tab1上的按钮会自动将其发送到tab2。如果在更改信息并且用户手动更改选项卡时未按下tab1上的按钮,我希望弹出一个消息框。

2 个答案:

答案 0 :(得分:1)

我认为针对您的应用程序的类似向导的设计更合适。从用户的角度来看,标签不应该像那样工作。

但目前情况的解决方法是:

  • 声明一个变量,例如dirty
  • 只要编辑了tab1中的任何控件,就设置此变量
  • 如果单击tab1中的按钮,则清除变量
  • 如果选择了tab2或tab3,请选中此项

答案 1 :(得分:0)

当所选标签发生变化时,您可以使用TabControl上的Deselecting事件通知。如果要取消选择的选项卡是带有按钮的选项卡,并且未保存信息,则可以显示消息框。

此外,根据您的程序执行的操作,在选项卡更改时继续保存信息可能更有意义,甚至不会打扰用户。