Procedura: chiamare proprietà e metodi del controllo Windows Form
Poiché CWinFormsView::GetControl restituisce un puntatore a System.Windows.Forms.Controle non un puntatore a WindowsControlLibrary1::UserControl1
, è consigliabile aggiungere un membro del tipo di controllo utente e inizializzarlo in IView::OnInitialUpdate. Ora è possibile chiamare metodi e proprietà usando m_ViewControl
.
In questo argomento si presuppone che sia stata completata in precedenza Procedura: Creare il controllo utente e l'host in una finestra di dialogo e Procedura: Creare il controllo utente e la visualizzazione MDI host.
Per creare l'applicazione host MFC
Aprire l'applicazione MFC creata in Procedura: Creare il controllo utente e la visualizzazione MDI host.
Aggiungere la riga seguente alla sezione public overrides della dichiarazione di
CMFC02View
classe in MFC02View.h.gcroot<WindowsFormsControlLibrary1::UserControl1 ^> m_ViewControl;
Aggiungere un override per OnInitialupdate.
Visualizzare la finestra Proprietà (F4). In Visualizzazione classi (CTRL+MAIUSC+C) selezionare la classe CMFC02View. Nella finestra Proprietà selezionare l'icona per Sostituzioni. Scoll giù l'elenco a OnInitialUpdate. Fare clic sull'elenco a discesa e selezionare <Aggiungi>. In MFC02View.cpp. assicurarsi che il corpo della funzione OnInitialUpdate sia il seguente:
CWinFormsView::OnInitialUpdate(); m_ViewControl = safe_cast<WindowsFormsControlLibrary1::UserControl1 ^>(this->GetControl()); m_ViewControl->textBox1->Text = gcnew System::String("hi");
Compilare ed eseguire il progetto.
Nel menu Compila scegliere Compila soluzione.
Scegliere Avvia senza eseguire il debug dal menu Debug.
Si noti che la casella di testo è ora inizializzata.
Vedi anche
Hosting di un controllo utente Windows Form come visualizzazione MFC