Предполагая, что вы имеете в виду, что в приложении WinForms вы размещаете экземпляр класса WebBrowser
, вы можете предоставить объект его свойству ObjectForScripting
.это обеспечивает метод для вызова вашего кода WinForms.Например:
public partial class MyWindowsFormsForm()
{
public MyWindowsFormsForm()
{
this.WebBrowserControl.ObjectForScripting = this;
}
public void DoSomething()
{
MyOtherForm f = new MyOtherForm();
f.Show();
}
}
Затем на вашей странице:
<script language="javascript" type="text/javascript">
function loadOtherForm()
{
if (RunningInWinFormsApplication())
{
window.external.DoSomething();
}
else
{
// Code to do something when NOT running inside the WinForms app could go here
}
}
function RunningInWinFormsApplication()
{
return (window.external.DoSomething != undefined);
}
</script>
<button onclick="loadOtherForm();">Call into WinForms app</button>
Существует очевидное предостережение, что вам нужно иметь код на своей веб-странице, который проверяет, что window.external.DoSomething
на самом деле существует, так что скорее всего ваш onclick
(в этом примере) вызовет вспомогательный метод, который либо вызывает WinForms, либо выполняет любые необходимые действия в случае, если страница не размещается внутри вашего приложения.