忍者ブログ
暇人おやじの暇なつぶやき
[52] [51] [50] [49] [48] [47] [46] [45] [44] [43] [42]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

■Formから別のフォーム名の呼び出し

1、ソリューションエクスプローラにて
 プログラム本体の部分又はヘッダーファイルの部分を右クリック
追加メニューから新しい項目を選択する
画面が表示されるので、Windowsフォームを選び、ファイル名を入力する
このファイル名がフォーム(クラス)の名前になる

2、メインフォームからこの画面を呼び出すには
まずメインフォームのコードにこの画面を使う為にincludeする必要がある

#pragma once
#include "xxxxxx.h" ←1で作成した名前

そして呼び出す場面にて

Form^ form2 = gcnew xxxxxx();
form2->ShowDialog();

これで呼び出すことが可能になる。尚「ShowDialog()」命令は画面をモーダル表示する

ここで一つ不可解な事がある
それは1番目のフォームの場合、クラス名でそのままアクセスできるのに2番目以降の画面の場合にはそのままでは利用できない、これはメイン画面の作成と2番目以降の画面では作成方法が異なっているからだ

メインフォームの場合、プログラム本体(メイン プロジェクト ファイル)にて作成
    // メイン ウィンドウを作成して、実行します
    Application::Run(gcnew FrmMain());

つまり、ApplicationクラスのRunメソッドで生成される
ところが2番目以降の場合は

Form^ frminit = gcnew FrmInit();

Formクラスにアクセスして実体化している
そのため、同じgcnewを実行しているが、Formクラスの場合その戻り値がフォームの名称となるので、ファイルと同じ名称では利用できない
これを回避するには、大文字、小文字を駆使する必要がある

Form^ FrmInit= gcnew FrmInit(); ←これはコンパイルでエラーになる
PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
フリーエリア
最新CM
最新TB
プロフィール
HN:
忍者 シオ才
性別:
非公開
バーコード
ブログ内検索