C#のスタートアップオブジェクトの変更について

このQ&Aのポイント
  • C#でForm1とForm2を連携する際、スタートアップ時のフォームを設定する方法について教えてください。
  • Form1からForm2にコピーペーストするだけではエラーが発生する可能性があるため、具体的な作業手順を教えてください。
  • 回答や参考となるページがあれば教えてください。
回答を見る
  • ベストアンサー

C#のスタートアップオブジェクトの変更について

C#でForm1を作ってから、あとから作ったForm2を MDIの親画面にして、プログラムの起動時に スタートアップ時のフォームとしたいのですが、 スタートアップオブジェクトをForm2とすると 「.Form2' に適切な Main メソッドがありません。」 というエラーが表示されます。これは最初に作った Form1にMainメソッドがあるからというのはなんとなく わかるのですが、具体的にはどのような作業をしたら よいでしょうか。Form1からForm2にコピーペースト で適当にやってしまうと、別の問題が起きそうなので、 心配です。 回答、または参考になるようなページがありましたら 教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • eipu
  • ベストアンサー率39% (25/64)
回答No.1

参考になるかどうかは分かりませんが・・・。 Mainメソッドについては、「C#の基礎」に書いてます。 Mainメソッドは、プログラムのスタート位置を示しますので、 Form2にコピーして、Form1のものは消してください。

参考URL:
http://black.sakura.ne.jp/~third/programming/cs/cs.html
cavtomo
質問者

お礼

ありがとうございました。 解決できました。

関連するQ&A

  • C#でオブジェクトの有無を取得する

    オブジェクトが作られている時と作られていない時で処理をわけたいのですがうまくいきません。 この書き方の何がまずいのでしょうか? namespace オブジェクト検索 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { Control c = Controls["form2"]; if (c != null) { ((TextBox)c).Text += "*"; } } private void button2_Click(object sender, EventArgs e) { Form2 form2 = new Form2(); form2.Show(); Application.DoEvents(); } } } ボタン2を押した時に新しいフォームが立ち上がり、そのフォームがあるときは*が出るようにしたいです。

  • C#「オブジェクト参照が必要です」(初心者)

    Visual C# 2008を学習中なんですが、とりあえず何か作ってみようと思って、パラパラマンガに挑戦してみました。 Form1にpictureBox1を作り、waitを入れてイメージを書き換えるという単純なものです。 ところが実行しようと思ったら、「静的でないフィールド、メソッド、またはプロパティ’WindowsFormApplication1.Form1.pictureBox1’でオブジェクト参照が必要です」というエラーが出ます。その際のフォーカスは、main()内の Form1.pictureBox1.image = Image.FromFile("motion1.png"); ”Form1.pictureBox1”に当てられています。 何が原因と考えられるでしょうか。 もし情報不足であればご指摘いただくか、あるいはこの目的においてやらなければいけないこと、を大雑把に教えていただくだけでも幸いです。 よろしくお願いします。

  • オブジェクト参照エラーについて

    http://uchukamen.com/Programming1/WebBrowser/index.htm こちらのページのソースコードを基にして、C#2005でブラウザを作っています。 設定画面を作るためにForm2を呼び出そうとしていますが旨くいかず、検索を重ねても解決法がわかりません。 1. ソリューションエクスプローラから追加→新しい項目で、Windowsフォームを追加(Form2.csが新しくできる) 2. 「static void Main() {」の次に  「Browser.Form2 Form2 = new Browser.Form2();」を追加 3. Form1のツールバーに項目1を1つ追加 →クリックされたときに「Browser.Form2.ShowDialog();」 ビルドすると「Browser.Form2.ShowDialog();」に下線を引かれて "静的でないフィールド、メソッド、プロパティ'System.Windows.Forms.Form.ShowDialog()'でオブジェクト参照が必要です。" と帰ってきます。 ご教授いただけると大変幸いです。 ちなみに私のプログラミング知識についてはPerlでCGIを少し自作できる程度です。

  • オブジェクト(コントロール)の名前を変更したい

    諸事情があり、フォーム上のコマンドボタン40個くらいの名前を変更したいのですが まず、一つだけ変更できるか実験してみたのですがうまくできません。 Sub オブジェクト名変更() DoCmd.OpenForm Form_フォーム1.Name, acDesign Form_フォーム1.コマンド0.Name = "あああ" DoCmd.Save acForm, Form_フォーム1 End Sub を実行すると メモリが不足しています。(Error 7) と出たり、 実行時エラー 29054 指定のコントロールを追加、名前を変更、または削除することはできません。 と出たりします。 これって無理って事でしょうか? バージョンは2007です。

  • 指定名のオブジェクトを探す方法

    こんにちは、honiyonです。  あるHTML中に、 <FORM name="hoge1" ...> ~ </FORM> <FORM name="hoge2" ...> ~ </FORM> ...  と同じ名前で連番の振られたフォームが複数あります。  この数が固定ならいいのですが、場合によって増減します。  この各フォームの要素を操作するため、 object = document.findobject("hoge1");  みたいな、指定名のオブジェクトを取得する方法が必要になっています。  このような関数がありましたら、是非教えてください(..  また、連番を振るという方法も、増減する各フォームを処理する為に考えた1つの方法です。他に良い方法があれば教えてください(..  現在までとほほさんのサイトを参照して勉強してきましたが、もっと様々なプロパティやメソッドが載っているサイトがないかと模索中です。  良いサイトがありましたら、併せてお教え願えれば幸いです。  宜しくお願いします。

  • C++/CLIとMFC

    よろしくお願いします。 環境はVisual C++ 2005です。 ご存知の方がいらっしゃいましたらご教授ください。 一つのプロジェクトで作成した親Formに対して、 もう一つのプロジェクトで作成した子ウィンドウをプラグインさせ、MDIを作ろうとしているのですが [CLR]->[Windowsフォームアプリケーション]で作成したプロジェクトのFormに対して MFCで作成した子ウィンドウをプラグインさせることは可能なのでしょうか? C++/CLIでMDIを作る時は MDIの親となるFormのIsMdiContainerプロパティをtrueに設定し、 MDIの子となるFormのMdiParentプロパティをMDIの親Formの インスタンスに設定する必要があると思うのですが、 子の部分をMFCを使って作成した場合どのようにすれば 親子関係が作れるのかわからず質問させていただきました。 よろしくお願いします。

  • ソフトの組み方は文法書を読んでもなかなか理解できない C#

    C#でクラスの事と、組み立て方がまだ理解できていないのですが class Dousa{ } class Form1 の2つのクラスがあります。 プログラムを実行するとForm1から動作します。(まだこの仕組みが理解できていないですが) そして、フォームが表示され、ボタンが配置されているのでそのボタンをクリックすると、 Dousaのオブジェクトがインスタンスされて実行されるようにしているのですが、 そのDousaクラスの中で、円を描くメソッドを動かすとForm1上で円が描かれるといったことをしたいのですが、 円を描くメソッドは、Form1のこと(メソッド)を知らないと描けないと思う(?) class Form1 : Dousa;の場合は Dousaの中身がForm1に継承されるのですが、 逆のことがしたいです。 class Dousa : Form1とした場合、最初に実行されるエントリ?はどこからになるのでしょうか? Form1から動作しても、DousaクラスからForm1をいじれるようにする仕組みは作れるのでしょうか? このようにソフトの組み方は文法書を読んでもなかなか 理解できないところですが、C#を使ったのソフトの組み方を解説している本などご存知の方教えていただきたいです。

  • VB2010での「スタートアッププロジェクト」の設定の仕方を教えて下さ

    VB2010での「スタートアッププロジェクト」の設定の仕方を教えて下さい お教え下さい VB2010を使って、ソフトを考えている者です スタートアッププロジェクトからプログラムをスタートさせたく、その設定をしたいのですが、Helpが教える様な設定画面が、なかなか 現れません VB.NET最初の版 では、もっと簡単に 出来た、と 思って居るのですが… ちなみに、私がやっている方法とは、 (1)スタートページで「新しいプロジェクト」をクリックし、「種類選択画面」が現れたら上の「Windows フォームアプリケーション」をクリック、 (2)「Form1デザイナー画面」が出た段階で、横の「ソリューションエクスプローラ」の窓を見るのですが、「My Project」と「Form1.vb」との2つしかなく、 その「My Project」を選択してクリックすると、 (3)「Windows Application1」なる画面が開いて、「アプリケーション」、「コンパイル」、「デバグ」等々のタグがあり、「アプリケーション」タグを開いて中のメニューを探してもHelpで言う「スタートアップ プロジェクト」が 無いのです そうして此処で頓挫してしまうのです (4)しかも「 Program Main() 」と言うタイトル名が、どうしても 現れません このやり方は 多分、間違いでしょうが(プロジェクトから始めたいのにForm1を指定して居るから…?)、別の選択は どれでしょうか?「種類選択画面」では他の選択肢、例えば「WPFアプリケーション」とか「クラス ライブラリー」とかがあるのですが、どれを選ぶべきか、が 解りません 尚、参考にしているHelpのサイトは       http://msdn.microsoft.com/ja-jp/library/a1awth7y.aspx です 宜しく お願い致します akqspより

  • EXCEL2003でオブジェクトの削除方法

    WebページをコピーしEXCELワークシートにペーストをすると、図形とともにチェックボックスやテキストボックス等のオブジェクトも貼り付けられました。図形オブジェクトは削除できるのですがその他のオブジェクトの削除方法がわかりません。 ご存知のかたご教授お願いします。

  • 実行状態中にオブジェクトの配置、サイズ変更はできますか?

    ご質問させていただきます。 Visual Basic 2005 を使っています。 やりたいこととは、 実行状態のフォーム(GroupBoxオブジェクト等)にTextBoxや線/円オブジェクトを置いたり、 そのオブジェクトをマウスクリックで”選択して”縦横のサイズを変更したり、位置を変更したいのです。 (できればマウス右クリックでプロパティの変更なども) 大まかに言えば、 実行状態のフォームに「デザイン状態の操作」や「Excel上の図形描画の操作」と同じようなことができるのでしょうか? (ツールボックスからデザインフォーム上へのオブジェクトの配置、配置したオブジェクトに マウスクリックをしてのサイズ変更、コピー&ペースト処理など) はじめは、直線や四角形を描画して期待通りのことができるかと思いましたが、 やはり描画した後にその線を”つまむ”ことができませんでした。 ちなみに、VB2005ではLineやShape系はないので、VB2005 PowerPacks2.0 を入れることで、 VB6でのLineコントロールみたいな動きはできました。 良いアドバイスありましたらお願いいたします。

専門家に質問してみよう