Zajmuję się tworzeniem strony internetowej oraz aplikacji Windows i zamierzam używać tej samej strony internetowej dla aplikacji formularzy Windows oraz dla witryny sieci Web.

Więc chcę wywołać kontrolkę formularza Windows po kliknięciu w link, który jest umieszczony na stronie internetowej. I chcę pokazać kontrolkę formularza systemu Windows jako wyskakujący formularz.

Jak to zrobić? Lub podaj jakiś dokument związany z tym problemem.

1
Priyanka 6 luty 2012, 12:25

3 odpowiedzi

Najlepsza odpowiedź

Zakładając, że masz na myśli, że w aplikacji WinForms hostujesz wystąpienie WebBrowser, możesz dostarczyć obiekt do jego właściwość ObjectForScripting. który udostępnia metodę do wywołania w celu wyzwolenia kodu WinForms. Na przykład:

public partial class MyWindowsFormsForm()
{
    public MyWindowsFormsForm()
    {
        this.WebBrowserControl.ObjectForScripting = this;
    }

    public void DoSomething()
    {
        MyOtherForm f = new MyOtherForm();
        f.Show();
    }
}

Następnie na twojej stronie:

<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>

Istnieje oczywiste zastrzeżenie, że musisz mieć kod na swojej stronie internetowej, który sprawdza, czy window.external.DoSomething rzeczywiście tam jest, więc prawdopodobnie onclick (w tym przykładzie) wywołałby metodę pomocniczą, która albo wywołuje WinForms lub robi wszystko, co trzeba w przypadku, gdy strona nie jest hostowana w aplikacji.

1
Rob 6 luty 2012, 15:01

Myślę, że się mylisz - albo my jesteśmy.

"Mam stronę, którą zaprojektowałem dla aplikacji webowej i zamierzam otworzyć tę samą stronę w kontrolce przeglądarki internetowej, która zostanie umieszczona na jednej z form aplikacji Windows Form. A jeśli otworzę formularz, który ma moja strona internetowa i kliknąłem link ze strony internetowej, wtedy powinien otworzyć inny formularz z aplikacji Windows"

Więc znasz link, który zostanie kliknięty? Następnie w Metodzie nawigacji w przeglądarce internetowej sprawdź, czy jest to link, którego oczekiwałeś i otwórz WinForm, np.:

private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
if (e.Url.Tostring() == "http://localhost/LinkThatOpensFormTwo.htm")
{
Form2 f = new Form2();
f.Show();
0
Jeremy Thompson 7 luty 2012, 08:13

Możesz wyświetlić formularz systemu Windows w przeglądarce internetowej (preferowany Internet Explorer) za pomocą aplikacji przeglądarki WPF, która ma funkcję osadzania formularzy systemu Windows (lub podobnych, takich jak składniki .NET).

To jest prawidłowe pytanie, ponieważ istnieje wiele starszych aplikacji .NET, których firma nie ma zasobów do opracowania w formacie Web HTML 5 (przy użyciu AJAX itp.). Takie starsze aplikacje można łatwo wyświetlić w przeglądarce internetowej przy niewielkiej wymaganej wstępnej konfiguracji.

  1. Otwórz aplikację Windows Form w istniejącym środowisku IDE programu Visual Studio
  2. Przejdź do właściwości projektu i w ustawieniach aplikacji Ustaw typ danych wyjściowych na „Bibliotekę klas” enter  opis obrazu tutaj
  3. Dodaj nowy projekt typu „Aplikacja przeglądarki WPF”, jak pokazano poniżej wprowadź opis obrazu  tutaj
  4. Odwołaj się do formularza Windows (teraz jako DLL) wraz z dwoma ważnymi zestawami WindowsFormIntegration i System.Windows.Forms
  5. Napisz kod, aby wywołać formularz systemu Windows na stronie XAML i XAML.CS, jak pokazano w tym linku do samouczka.
  6. Przebuduj rozwiązanie i kliknij Opublikuj i zapisz, wybierz system plików, jak pokazano poniżej. tu wpisz opis obrazu
  7. Przejdź do folderu publikowania i kliknij dwukrotnie plik z rozszerzeniem '.xbap. Powinien zostać automatycznie otwarty w Internet Explorerze z pytaniem o uprawnienia po raz pierwszy.
  8. Powinieneś być w stanie wyświetlić dane wyjściowe w przeglądarce internetowej. tu wpisz opis obrazu

Daj mi znać, jeśli chcesz, abym utworzył samouczek wideo, aby osiągnąć to samo.

0
vibs2006 13 wrzesień 2018, 11:00