Как использовать SetFocus на управлении текстовым полем?

Вы попросили самый короткий код, таким образом, здесь это. В четырех строках это может быть сделано, хотя существует все еще квадратичное. Я рассмотрел вопрос, чтобы быть вне круга. Я не рассмотрел то, что происходит, если точка непосредственно выше или ниже центра круга, который является cX=pX.

m=(cY-pY)/(cX-pX);  //slope
b=cY-m*cX;  //or Py-m*Px.  Now you have a line in the form y=m*x+b
X=(  (2mcY)*((-2*m*cY)^2-4*(cY^2+cX^2-b^2-2*b*cY-r^2)*(-1-m^2))^(1/2)  )/(2*(cY^2+cX^2-b^2-2*bc*Y-r^2));
Y=mX+b;

1] Получают уравнение для строки, соединяющей точку и центр круга.

2] Проходят строка расстояние одного радиуса от центра для нахождения точки на круге. Это: radius=a^2+b^2, который является: r = (cY-Y) + (cX-X)), ^ (1/2)

3] Решают квадратично. X=quadratic_solver (r = (cY-Y) + (cX-X)) ^ (1/2), X) который, если Вы занимаете место в Y=m*X+b, Вы получаете тот ад выше.

4] X и Y являются Вашими результатами на круге.

я довольно уверен, что совершил ошибку где-нибудь, оставьте комментарий, если кто-либо находит что-то. Конечно, это является вырожденным, один ответ является самым далеким от Вашей точки, и другой является самым близким.

11
задан NH. 21 December 2018 в 01:32
поделиться

4 ответа

Вы можете использовать .Focus () в самом элементе управления или вызвать SetFocus () страницы, передав ссылку на элемент управления. Обратите внимание, что вам нужно передать элемент управления, а не идентификатор, поскольку он, похоже, не поддерживается (по крайней мере, в .NET 3.5). См. MSDN Page.SetFocus для получения дополнительной информации.

В чем разница между методами? Они в значительной степени взаимозаменяемы, и вам следует вызывать то, что более удобно с учетом объектов, к которым у вас есть доступ - обычно проще вызвать .Focus () для элемента управления. См. Как установить фокус на серверные веб-элементы управления ASP.NET в MSDN.

15
ответ дан 3 December 2019 в 04:52
поделиться
2
ответ дан 3 December 2019 в 04:52
поделиться

В зависимости от того, как вы хотите, чтобы ваш рабочий процесс был или каковы ваши спецификации, у вас есть 2 варианта:

  1. Установить, если со стороны сервера. Как упоминал Джон, вы можете использовать метод Focus () , доступный для элементов управления пользовательского интерфейса. Это применит фокус к элементу управления, когда ваша страница будет отображаться в браузере. Однако в результате взаимодействия пользователя с другими элементами на странице вы потеряете его.

  2. Установите его на стороне клиента с помощью JavaScript. Это даст вам больше гибкости, так как вы сможете применять фокус в зависимости от взаимодействия с пользователем. Чтобы применить фокус на стороне клиента, вы можете использовать DOM (объектную модель документа). Вам нужно получить ссылку на элемент управления, а затем вы можете вызвать метод focus () :

    document.getElementById (txtUserName) .focus ();

То есть, если идентификатор control (поскольку он зарегистрирован на стороне клиента) - txtUserName . В зависимости от макета вашей страницы это будет менее вероятным, и у вас могут возникнуть проблемы, если вы измените макет, так что это не лучшая практика.

Хорошей практикой является регистрация переменной JavaScript, целью которой является хранение идентификатора клиента элемента управления, поскольку он будет отображаться в HTML. Вы можете сделать это, используя класс ClientScriptManager :

ClientScript.RegisterClientScriptBlock(this.GetType(), "setFocus", "var focusFieldId = '" + txtUserName.ClientID + "';", true);

, а затем на стороне клиента вы можете сказать

document.getElementById(focusFieldId).focus();

. Вы можете, например, преобразовать его в метод, называемый setUserNameFocus () а затем вызовите этот метод для любого события на стороне клиента, которое вы хотите. Одна из популярных практик - например, удерживать фокус на определенном поле, когда пользователь нажимает на какое-либо место на странице. Например, ваш элемент HTML body может выглядеть следующим образом, если вы не хотите терять фокус для своего элемента:

<body onload="setUserNameFocus();" onclick="setUserNameFocus();">
4
ответ дан 3 December 2019 в 04:52
поделиться

Элементы управления имеют метод Focus (), который вы можете вызов для установки фокуса на этот элемент управления.

txtUserName.Focus();

Кроме того, у Page имеет метод SetFocus (), который принимает либо объект Control, либо идентификатор элемента управления, на который вы хотите установить фокус.

this.Page.SetFocus(txtUserName);

или

this.Page.SetFocus(txtUserName.ClientID);
2
ответ дан 3 December 2019 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: