Управляемая оболочка для документа HTML не полностью реализует функциональность, в которой Вы нуждаетесь, таким образом, необходимо опуститься в API MSHTML для выполнения то, что Вы хотите:
1) Добавляют ссылку на MSHTML, который, вероятно, назовут "Библиотекой объекта HTML Microsoft" под COM ссылки.
2) Добавляют 'использование mshtml'; к Вашим пространствам имен.
3) Получают ссылку на Ваш IHTMLElement элемента сценария:
IHTMLElement iScriptEl = (IHTMLElement)scriptEl.DomElement;
4) Вызов insertAdjacentText метод, с первым значением параметра "afterBegin". Все возможные значения перечислены здесь :
iScriptEl.insertAdjacentText("afterBegin", "function sayHello() { alert('hello') }");
5) Теперь Вы сможете видеть код в scriptEl. Свойство InnerText.
Hth, Richard
Я имитирую то, что вы хорошо говорите, используя следующее, разве вы не это имеете в виду?
public Window1()
{
InitializeComponent();
Loaded += new RoutedEventHandler(Window1_Loaded);
}
void Window1_Loaded(object sender, RoutedEventArgs e)
{
WebBrowser1_PreviewKeyDown(this, new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 1, Key.LeftShift));
WebBrowser1_PreviewKeyDown(this, new KeyEventArgs(Keyboard.PrimaryDevice, Keyboard.PrimaryDevice.ActiveSource, 1, Key.Tab));
}
private void WebBrowser1_PreviewKeyDown(object sender, KeyEventArgs e)
{
System.Diagnostics.Debug.WriteLine(e.Key);
}
ВЫХОД:
LeftShift
Tab
Я создал небольшую библиотеку, которая, вероятно, поможет вам с издевательством над клавишей Shift: