我使用Telerik.WinControls.UI.RadWizard
和Next
事件在页面之间切换。在第二页上,我有RadGroupBox
,其中包含RadTextBox
。如果用户移动到第二页,则应自动选择RadTextBox
。为此,我使用Control.Select()
方法。所以我的代码看起来像这样:
private void radWizard1_Next(object sender, WizardCancelEventArgs e)
{
radTextBox1.Select();
}
但遗憾的是,文本框未被选中。首先,我认为我的应用程序出了问题所以我创建了一个测试应用程序。在测试应用程序中,我尝试在按钮单击时选择文本框。
private void button1_Click(object sender, EventArgs e)
{
radTextBox1.Select();
}
在按钮上单击它可以正常工作。所以我删除了按钮并使用Next()
事件创建了一个测试向导。令我惊讶的是,移动到下一页时未选中文本框。
所以我确定它不是我的主要应用程序,它是错误的,它必须是向导或Next()
事件。这是Telerik RadWizard
的已知错误吗?有解决方案吗?或者您还有其他建议吗?
我正在使用带有Telerik.WinControls
库的C#。我的应用程序中的所有控件都是Telerik控件。
修改
我也试过radTextBox1.TextBoxElement.TextBoxItem.HostedControl.Select();
。但这具有相同的效果。在按钮上单击它可以正常工作,RadWizard_Next()
它不会选择文本框。
编辑II:
当我使用radWizard1.NextButton.Click
事件代替RadWizard.Next
时,文本框会被选中。它只是Next
事件似乎"阻止"我的代码并取消选中文本框。
我现在可以毫无问题地使用radWizard1.NextButton.Click
,但我想知道为什么它没有处理Next
事件。如果有可能解决此事件的方法。有什么建议吗?
答案 0 :(得分:1)
更改页面时会触发下一个事件。由于事件是可取消的,它会在实际页面更改之前触发,因此顺序如下 1.单击下一步按钮 2.触发事件(在这里你做点什么) 3.进行实际更改
由于之后的实际更改,您的行动不会被执行。
您可以使用按钮点击事件找到,也可以使用SelectedPageChanged事件。