Я использую библиотеку SHDocVw для открытия и управления экземпляром Internet Explorer из C #.Мне нужно активировать событие onkeyup нескольких текстовых полей.Это код, который я использую:
dynamic userNameTextBox=doc.getElementById(5749).getElementsByTagName("input")[0];
userNameTextBox.value=userName;
userNameTextBox.onkeyup.apply(userNameTextBox);
dynamic passwordTextBox=doc.getElementById(5750).getElementsByTagName("input")[0];
passwordTextBox.value=password;
passwordTextBox.onkeyup.apply(passwordTextBox);
Это работает для первого вызова «apply», но второй вызов выдает ошибку: «System.MissingMemberException: Ошибка при вызове apply.».Эта проблема также возникает, если я использую «вызов» вместо «применить».Однако, если я изменю одну из функций, вызывающих событие, с «apply» на «call», то это сработает - но если я попытаюсь вызвать этот код снова в том же экземпляре моей программы, это вызовет то же исключение.Короче говоря, я не могу использовать «apply» или «call» более одного раза, пока не перезапущу свою программу.
Эта проблема возникает только в Windows XP + IE8.Если я попробую это сделать в Windows7 + IE9, я смогу использовать «apply» / «call» столько раз, сколько захочу.
Могу ли я что-нибудь сделать, что позволит мне использовать «apply» / «call»более одного раза или для вызова событий любым другим способом?