Öffnen Sie die Windows - ' Taschenrechner in meinem C# Win-Anwendung?
Ich weiß, ich kann öffnen Sie den Windows Rechner mit dem folgenden code :
System.Diagnostics.Process.Start("calc");
Aber ich will es öffnen, in meinem C# Win-Anwendung ich.e : ich will nicht, um es zu öffnen im separaten Fenster, ich will es öffnen meiner Fenster.
Wie kann ich es tun ?
InformationsquelleAutor Mohammad Dayyan | 2010-11-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht einbetten einer anderen Anwendung in Ihre form.
Jedoch, Sie können das calculator-Fenster oben auf Ihrem Formular, und legen Sie Ihre form wie Ihre Eltern. Dies könnte zu erreichen, den visuellen Effekt, die Sie suchen. Sie überprüfen konnten, in die SetParent - API-Funktion. Zum Beispiel:
Eine bessere Lösung sein könnte, nur Rollen Sie Ihre eigenen Rechner-Steuerung in C#, wenn Sie wirklich brauchen, dass eingebettete Funktionalität in Ihrer app. Zusammengeschlagen ein einfacher Taschenrechner ist wirklich nicht so schwer, und seine unendlich anpassbare zu tun und genau gucken, wie Sie wollen.
Etwas wie dies, vielleicht, wäre ein guter Ausgangspunkt, wenn Sie wollten, Rollen Sie Ihre eigenen Rechner: http://www.codeproject.com/KB/cs/Scientific_Calculator.aspx
Und ich habe immer gedacht, diese Art von Kontrolle wäre lächerlich nützlich, eines Tages wenn ich jemals schrieb eine app, stützte sich schwer auf numerische Eingabe: http://www.codeproject.com/KB/miscctrl/C__Popup_Calculator.aspx
Ja, natürlich wird es. Wo habe ich jemals etwas anderes sagen?
Ich dachte, es wird offen in der winform. denn das war die Frage, wie offen es in C# zu gewinnen und Ihre Antwort markiert als Antwort. btw du benutzt SetParent und MainWindowHandle. also, was ist der Unterschied zwischen deiner Antwort und der Frage, weil dieser code zeigt Rechner zu. Dank
Ich habe den leisen Verdacht, dass du eigentlich nie Lesen, meine ganze Antwort, sondern sah nur in die code-block. Die Antwort beginnt mit der Zeile "nicht einbetten einer anderen Anwendung in Ihre form." Das ist im Grunde sagen: "Was Sie für Fragen in der Frage ist nicht möglich." Ich gehe dann, auf ein zugegebenermaßen hackish workaround—übernahme-der-Rechner-Fenster, um Ihre Anwendung Fenster. Sie tun, dass durch den Aufruf der
SetParent
Funktion, die Dokumentation, für die ich verlinkt in dem Absatz unmittelbar vor dem Codeblock.Ja,
Process.Start
ist die gleiche. Das ist nicht der Punkt der Antwort. Der Punkt der Antwort ist derSetParent
Funktion.InformationsquelleAutor Cody Gray
MS-Windows-Rechner ist nicht eine GUI-Steuerung, es ist eine eigenständige Anwendung. Wenn Sie auf der Suche für ein .NETTO-Rechner Steuern, gibt es einige kommerzielle Steuerungen von Drittanbietern, zum Beispiel
hier
http://download.cnet.com/Softgroup-Net-Calculator-Control/3000-10250_4-10909672.html
oder hier
http://www.softpedia.com/get/Programming/Components-Libraries/Net-Calculator-Control.shtml
InformationsquelleAutor Doc Brown
Können Sie pinvoke SetParent(), die Kind-Fenster-handle, sollte der Prozess.MainWindowHandle von Calc, das übergeordnete Fenster sollte der handle des Fensters, in denen Sie einbetten möchten. Form.Griff gibt Ihnen diesen Wert. Sie müssen auch MoveWindow um das Fenster an der richtigen Stelle. Verwenden pinvoke.net um die erforderliche pinvoke Erklärungen.
Google +setparent +mainwindowhandle und nimm den ersten Treffer.
Wo in der SDK-Dokumentation nicht an, dass Kind zu windows gehören muss, um den gleichen Vorgang?
setparent.
nicht finden können, eine. Dies scheint sich verändert zu haben, die docs für SetWindowLongPtr jetzt erwähnen, eine Beschränkung nur für XP und direct, nicht zu verwenden, GWLP_HWNDPARENT mehr. Ich werde entsprechend bearbeitet.
InformationsquelleAutor Hans Passant
InformationsquelleAutor Ram
versuchen unten; laufen für mich.
InformationsquelleAutor mui
InformationsquelleAutor Ali Hamza