如何将焦点设置为webForm

时间:2015-03-10 11:45:22

标签: c# winforms

else if (answer is TextAnswer)
    {
        this.Sourcecode.AppendLine("\t\t\t\t<textarea id='" + id + "' name='" + id + "' value='' style='position: absolute; "
                                   + "top: " + top + "px; left: " + left + "px; height: " + height + "px; width: " + width + "px; "
                                   + "visibility:hidden; z-index: 2; resize: none;'></textarea>");

这行代码在我的网络表单上创建一个TextBox控件,但问题是没有设置焦点,我想设置焦点。

怎么做?

这行代码完全正常,我的意思是当我点击我的网络表单时,它会创建一个控件。现在当我点击它时,它会创建一个控件来写一些东西,然后我必须再次点击它,所以我只想在我点击焦点时应该在那里。

2 个答案:

答案 0 :(得分:2)

尝试在您显示的代码之后添加此内容。这假设您可以看到Id。

id.Focus();

如果您尚未将ID插入DOM但您找不到该元素,那么另一种解决方案可能是使用javascript来完成这项工作。

var script = "<script>document.getElementById("+id+").focus();</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), id, script, false);

答案 1 :(得分:0)

您可以使用autofocus中的textarea属性。请记住,这将需要HTML5支持。您似乎在C#应用程序中使用默认Web控件?

this.Sourcecode.AppendLine("\t\t\t\t<textarea autofocus id='" + id + "' name='" + id + "' value='' style='position: absolute; "
                                   + "top: " + top + "px; left: " + left + "px; height: " + height + "px; width: " + width + "px; "
                                   + "visibility:hidden; z-index: 2; resize: none;'></textarea>");

检查以下示例: http://jsfiddle.net/9m0tctzg/

另一种选择是在那里注入一些JS,如果上面的代码不是一个选项。

<script> document.getElementById('idhere').focus(); </script>
相关问题