-1

次のように、それを作成するフォームから何らかのフォームのイベントを処理しようとしています

     Atom^ atomForm = gcnew Atom();
             atomForm->FormClosed+= gcnew System::Windows::Forms::FormClosedEventHandler(atomForm,&Form1::Atom_FormClosed);
             atomForm->ShowDialog();

しかし、それはこのエラーを生成しています Error 1 error C2440: 'initializing' : cannot convert from 'LRTSimulation::Atom ^' to 'LRTSimulation::Form1 ^' LRTDesign.h 167 1 LRTSimulation

私はC#でこれを平和的に行っていました。ここでどうすれば回避できますか?

4

1 に答える 1

0
 gcnew FormClosedEventHandler(atomForm, &Form1::Atom_FormClosed);

間違ったオブジェクトを渡しています。明らかに、Atom_FormClosed()メソッドはForm1クラスのメソッドです。したがって、Form1型のオブジェクトを渡す必要があります。エラーメッセージに示されているように、これをatomFormにすることはできません。

このコードがどこにあるかはわかりませんが、おそらくこれです。

この言語では、C ++ / CLIのようにデリゲートターゲットオブジェクトを指定できないため、C#でこれに問題が発生することはありません。

于 2012-06-20T13:08:57.107 に答える