Form1からForm2を呼び出す(表示する)

解決


yuki  2006-07-06 04:02:01  No: 62435

VC++.NETで開発していますC++初心者です。
現在、Form1にあるrichTextBoxの内容を検索・強調表示する機能を作っているのですが、
Form1から検索ワード入力用フォームを表示させる方法がわからずに困っています。

---Form1------------
 Form2 searchForm = new Form2();

等、いろいろ試したのですがエラーが止まりません。解決方法ご存知の方、ご教授お願いします。


Blue  2006-07-06 05:10:39  No: 62436

> VC++.NET
VC2002または2003のマネージド拡張プログラムだと仮定します。

Form2* searchForm = __gc new Form2();

Managed C++ 以前にC++の基本的な構文を勉強したほうがよいでしょう。
(newが返すものはポインタです。C#とはちがうよ。)


Blue  2006-07-06 05:21:53  No: 62437

ちなみに、__gcはあってもなくてもいいです。

しつこく__gcを書くならば

Form2 __gc * searchForm = __gc new Form2();

シンプルに書くならば、

Form2* searchForm = new Form2();

です。


yuki  2006-07-06 08:02:13  No: 62438

> VC2002または2003のマネージド拡張プログラムだと仮定します。
すみません情報不足でした、VC2003のマネージド拡張です。

> Form2* searchForm = new Form2();
newがポインタを返すのははじめて知りました。ありがとうございます。


Blue  2006-07-06 08:57:04  No: 62439

蛇足

> ちなみに、__gcはあってもなくてもいいです。
私は、C++のnewと区別する意味でもつけたほうがベターだと思います。
(マネージドされていないポインタと区別するため)

VC2005からは、MC++はC++/CLIという風になってより(私的に)扱いやすくなっています。

Form2 __gc * searchForm = __gc new Form2();

Form2 ^ searchForm = gcnew Form2();


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加