我需要确定用户在切换选项卡时来自和前往哪个选项卡,并可能取消切换。我尝试过取消选择、取消选择、选择、选定事件,所有这些事件都显示 e.TabPageIndex 与 sender.SelectedIndex 相同。
是否有一个事件或属性可供我使用,以便我可以确定此事件的双方,或者我是否必须将某些内容与从一个事件缓存它并在新事件中使用该值一起进行修改。
我试图避免处理取消选择/取消选择事件并缓存要在选择事件中使用的值。我已经知道我可以做到这一点,所以我问是否有更干净的方法,而不这样做。
我在 C# 和 VB 中都进行了尝试,得到了相同的结果(毫不奇怪)。
Thanks.
看起来任何一个事件参数都不会同时携带上一个和当前选项卡的详细信息,因此您需要处理几个事件来跟踪。
至少,您需要使用Deselected
事件来存储对先前选择的选项卡的引用。您始终可以查询 TabControl 的当前选项卡。要进一步伸展,您还可以处理Selected
跟踪当前选项卡的事件。
Option Strict On
Option Explicit On
Public Class Form1
Private PreviousTab As TabPage
Private CurrentTab As TabPage
Private Sub TabControl1_Deselected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControl1.Deselected
PreviousTab = e.TabPage
Debug.WriteLine("Deselected: " + e.TabPage.Name)
End Sub
Private Sub TabControl1_Selected(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlEventArgs) Handles TabControl1.Selected
CurrentTab = e.TabPage
Debug.WriteLine("Selected: " + e.TabPage.Name)
End Sub
Private Sub TabControl1_Selecting(ByVal sender As Object, ByVal e As System.Windows.Forms.TabControlCancelEventArgs) Handles TabControl1.Selecting
If CurrentTab Is Nothing Then Return
Debug.WriteLine(String.Format("Proposed change from {0} to {1}", CurrentTab.Name, e.TabPage.Name))
End Sub
End Class
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)