防止用户在Frame外部进行选项卡

时间:2011-06-30 09:09:10

标签: c# .net wpf

在我的WPF应用程序中,我有一个包含各种按钮和框架的页面。在这个框架内有许多文本框。

一开始,我将焦点设置为框架内的第一个文本框。有什么办法可以确保 Tab 只循环框架中的元素,而不会跳到父页面外?

提前谢谢。

3 个答案:

答案 0 :(得分:0)

为框架外的控件设置IsTabStop=false

答案 1 :(得分:0)

为了解决这个问题,我设置了

KeyboardNavigation.TabNavigation="Cycle"

在框架上。

答案 2 :(得分:-1)

tabstop将有效。

现在我的替代解决方案 - 只是假设:ur框架内的第一个元素的tabindex等于5,框架内的最后一个元素的tabindex等于9.取框架范围内具有最大tabindex的元素(即根据假设元素与tabindex 9)。在PreviewKeyDown事件上写下以下代码:

private void frames_max_tabindex_element_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
        {
            if (e.KeyValue == 9 )
            element_that_has_tabindex_equal_to_frames_min_tab_index_minus_1.Focus();
        }

简要探讨。 (使用假设来展示想法)当焦点位于使用tabindex 9的框架元素时,按下选项卡将触发PreviewKeyDown事件。方法内部你将焦点设置为tabindex等于4的元素。在释放 tab 键之后,windows会将焦点设置到下一个tabindex,即tabindex等于5的元素。所以从tabindex = 9 u跳转到tabindex = 5

的元素