Wir haben einen C++- Dialog, in dem mit
CWinFormsControl<NT_CalSend::DlgCalSettings> m_pDlgCalSend; (.h-Datei)
und
DDX_ManagedControl(pDX, IDC_DLG_CAL_SEND, m_pDlgCalSend) (.cpp-Datei)
eine Liste aus einer selbst erstellten C#- Dll eingeblendet wird. Das
funktioniert auch ganz gut.
Wenn wir jetzt aber in der Liste auf das "DoubleClick" Event reagieren und
darin eine System.Windows.Forms.MessageBox.Show("Test") �ffnen, wird nichts
angezeigt und die Anwendung reagiert nicht mehr.
Statt der MessageBox kann auch irgend ein anderes Form mit ShowDialog
angezeigt werden. Es wird von dem Form dann nur der Rahmen gezeichnet und
die Anwendung reagiert nicht mehr.
Hat jemand eine Idee, wie man den Dialog zum Anzeigen bring?
Vielen Dank.
Markus
> Wir haben einen C++- Dialog, in dem mit
>
> CWinFormsControl<NT_CalSend::DlgCalSettings> m_pDlgCalSend; (.h-Datei)
Das ist sicher falsch...
Einen Dialog kannst Du *direkt* aufrufen, da brauchst Du nix zu hosten!
z.B.:
System::Windows::Forms::FontDialog^ fd = gcnew
System::Windows::Forms::FontDialog();
fd->ShowDialog();
Oder was soll sonst das "DlgCalSettings" sein?
Wenn es ein "Control" ist, dann *muss* es von "UserControl" abgeleitet
sein, sonst wird das Szenario nicht supported!
Aber wie gesagt; fᅵr einen Dialog brauchst Du nichts zu tun...
--
Greetings
Jochen
My blog about Win32 and .NET
http://blog.kalmbachnet.de/
vielen Dank f�r Deine Antwort. Leider hat das aber nicht geholfen:
Wir haben einen C++ Dialog, auf dem befinden sich Tab- Pages. Eine dieser
Pages enth�lt ein Static. Statt diesem Static blenden wir ein C#-UserControl
auf die bereits angedeutete Weise ein. Innerhalb des UserControls wird das
Event "DoubleClick" verarbeitet, das dann eine C#-MessageBox �ffnen sollte.
Diese kommt aber nicht. Statt dessen l�uft die Applikation in eine
Endlosschleife.
Gruďż˝,
Markus
"Jochen Kalmbach [MVP]" <nospam-Joch...@holzma.de> schrieb im
Newsbeitrag news:e66vSosO...@TK2MSFTNGP06.phx.gbl...
> Hallo Markus!
>
>> Wir haben einen C++- Dialog, in dem mit
>>
>> CWinFormsControl<NT_CalSend::DlgCalSettings> m_pDlgCalSend; (.h-Datei)
>
> Das ist sicher falsch...
>
> Einen Dialog kannst Du *direkt* aufrufen, da brauchst Du nix zu hosten!
>
> z.B.:
> System::Windows::Forms::FontDialog^ fd = gcnew
> System::Windows::Forms::FontDialog();
> fd->ShowDialog();
>
>
> Oder was soll sonst das "DlgCalSettings" sein?
>
>
> Wenn es ein "Control" ist, dann *muss* es von "UserControl" abgeleitet
> sein, sonst wird das Szenario nicht supported!
>
> Aber wie gesagt; f�r einen Dialog brauchst Du nichts zu tun...
> vielen Dank fᅵr Deine Antwort. Leider hat das aber nicht geholfen:
>
> Wir haben einen C++ Dialog, auf dem befinden sich Tab- Pages. Eine dieser
> Pages enthᅵlt ein Static. Statt diesem Static blenden wir ein C#-UserControl
> auf die bereits angedeutete Weise ein. Innerhalb des UserControls wird das
> Event "DoubleClick" verarbeitet, das dann eine C#-MessageBox ᅵffnen sollte.
> Diese kommt aber nicht. Statt dessen lᅵuft die Applikation in eine
> Endlosschleife.
Ich hab hier aus meiner C++/CLI Schulung genau dieses Beispiel... das
kann ich Dir mal zumailen... es macht genau das, was Du sagt... bei mir
geht es aber ohne Probleme....
Melde Dich unter jochen adddd kalmbachnet dott de
> Wir haben einen C++ Dialog, auf dem befinden sich Tab- Pages. Eine dieser
> Pages enthᅵlt ein Static. Statt diesem Static blenden wir ein C#-UserControl
> auf die bereits angedeutete Weise ein. Innerhalb des UserControls wird das
> Event "DoubleClick" verarbeitet, das dann eine C#-MessageBox ᅵffnen sollte.
> Diese kommt aber nicht. Statt dessen lᅵuft die Applikation in eine
> Endlosschleife.
Nur noch fᅵr die Nachwelt: Es geht um ein CDialog, der ein UserControl
enthᅵlt, welches aber in einem *anderen* CDialog als TabItem dargstellt
wird... dies fᅵhrt dann wirklich zu einem Problem...