Control.Select方法使用Telerik RadWizard Next()事件时不选择控件使用C#

时间:2015-07-22 09:45:22

标签: c# winforms telerik

我使用Telerik.WinControls.UI.RadWizardNext事件在页面之间切换。在第二页上,我有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事件。如果有可能解决此事件的方法。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

更改页面时会触发下一个事件。由于事件是可取消的,它会在实际页面更改之前触发,因此顺序如下 1.单击下一步按钮 2.触发事件(在这里你做点什么) 3.进行实际更改

由于之后的实际更改,您的行动不会被执行。

您可以使用按钮点击事件找到,也可以使用SelectedPageChanged事件。