gpt4 book ai didi

c# - 如何在 c# 中减少这个 IF-Else 阶梯

转载 作者:太空狗 更新时间:2023-10-29 22:10:04 26 4
gpt4 key购买 nike

这是我创建的 IF -Else 阶梯,用于将第一个可见控件聚焦在我的表单上。根据要求,任何控件都可以隐藏在表单上。所以我必须找到第一个可见控件并聚焦它。

 if (ddlTranscriptionMethod.Visible)
{
ddlTranscriptionMethod.Focus();
}
else if (ddlSpeechRecognition.Visible)
{
ddlSpeechRecognition.Focus();
}
else if (!SliderControl1.SliderDisable)
{
SliderControl1.Focus();
}
else if (ddlESignature.Visible)
{
ddlESignature.Focus();
}
else
{
if (tblDistributionMethods.Visible)
{
if (chkViaFax.Visible)
{
chkViaFax.Focus();
}
else if (chkViaInterface.Visible)
{
chkViaInterface.Focus();
}
else if (chkViaPrint.Visible)
{
chkViaPrint.Focus();
}
else
{
chkViaSelfService.Focus();
}
}
}

还有其他方法吗?我认为使用 LINQ 会占用性能,因为我必须遍历整个页面集合。我深入了解有母版页的页面。请提出建议。

最佳答案

我觉得你的树不错。这肯定看起来像一个可以简化的逻辑树,你有很好的嗅觉可以怀疑它。但是,逻辑树似乎反射(reflect)了您的需求。 逻辑真的很复杂,这是 C# 为您提供的处理这种情况的条件框架。我不认为它可以改进。

如果您有一个应该具有焦点的简单控件列表,并且您想将焦点放在列表中的第一个可见控件上,您可以这样做:

(From c in ListOfControls
Where c.visible = true
Select c).First.Focus();

但是,您似乎有一些额外的条件,所以这行不通。

关于c# - 如何在 c# 中减少这个 IF-Else 阶梯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2600345/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com