如何找到第一个可编辑的控件,以专注于页面

时间:2018-04-06 16:23:17

标签: c# asp.net

我当前的功能只找到第一个不完全正确的文本框。控件类没有IsEditable属性。

    private static Control FindFocusableControl(Control CurrentControl)
    {
        if (CurrentControl.Visible)
        {
            if (CurrentControl is TextBox)
            {
                return CurrentControl;
            }
            if (CurrentControl.HasControls())
            {
                foreach (Control CurrentChildControl in CurrentControl.Controls)
                {
                    Control focusableControl = FindFocusableControl(CurrentChildControl);
                    if (focusableControl != null)
                    {
                        return focusableControl;
                    }
                }
            }
        }
        return null;
    }

1 个答案:

答案 0 :(得分:0)

在第一个子控件的第一次递归中,子控件可能不可见,因此例程退出。

if (CurrentControl.Visible)

此时您可能需要另外一种检查,可能先检查文本框,然后检查是否可见。