C#のプログラム構造について(2) Form1.Designer.cs
今回も、C#のプログラム構造について考えてみます。
前回の続きです。
Windowsアプリケーションから起動するとForm1が用意されます。
3)ここで、ソリューションエクスプローラを見てみます。
よく見ると
Form1.cs
Form1.Designer.cs
の下に
Program.cs
が、あります。前回は、Program.csについて無視してお話ししました。
右クリックをして、コードの表示(C)を開きます。
Program.cs
の中にmain関数が、ありました。
main関数のあるProgram.csを削除してみます。
「いくら何でも、まずいだろう」と思いながら。。。
OKをクリックして、デバッグ開始(F5)します。
やはり、ビルドエラーが、発生しました。
「エントリーポイントに適切な静的'Main'メソッドが、含まれていません。」
という、お叱りを受けました。
やむを得ないのでForm1.csにmain関数を追加します。
Program.cs を見直すと
Form1 を表示したいので
Application.Run(new Form1());
をコーディングして
デバッグ開始(F5)します。
正常に、Form1 が表示されました。
4)ここで、前回と同じように、Form1.Designer.cs を削除します。
ツールボックス→ コモンコントロール→ MonthCalendar
のMonthCalendarをダブルクリック。または、
MonthCalendarをForm1へ、ドラッグ&ドロップします。
Program.csが、削除されているので、Form1.csの下の方に
private void InitializeComponent()
が、追加されています。
デバッグ開始(F5)します。
MonthCalendarが、表示されました。
が、何かカレンダーの雰囲気が違いますね。
main関数の
//Application.EnableVisualStyles();
のコメントを解除して、デバッグ開始(F5)します。
正常に、MonthCalendarが、表示されました。
今回
Form1.cs
Form1.Designer.cs
Program.cs
の3つのプログラムをForm1.cs の1つにまとめてみました。
一言
1つにまとめるのが、良いという実験ではありません。
前回の続きです。
Windowsアプリケーションから起動するとForm1が用意されます。
3)ここで、ソリューションエクスプローラを見てみます。
よく見ると
Form1.cs
Form1.Designer.cs
の下に
Program.cs
が、あります。前回は、Program.csについて無視してお話ししました。
右クリックをして、コードの表示(C)を開きます。
Program.cs
の中にmain関数が、ありました。
main関数のあるProgram.csを削除してみます。
「いくら何でも、まずいだろう」と思いながら。。。
OKをクリックして、デバッグ開始(F5)します。
やはり、ビルドエラーが、発生しました。
「エントリーポイントに適切な静的'Main'メソッドが、含まれていません。」
という、お叱りを受けました。
やむを得ないのでForm1.csにmain関数を追加します。
Program.cs を見直すと
Form1 を表示したいので
Application.Run(new Form1());
をコーディングして
デバッグ開始(F5)します。
正常に、Form1 が表示されました。
4)ここで、前回と同じように、Form1.Designer.cs を削除します。
ツールボックス→ コモンコントロール→ MonthCalendar
のMonthCalendarをダブルクリック。または、
MonthCalendarをForm1へ、ドラッグ&ドロップします。
Program.csが、削除されているので、Form1.csの下の方に
private void InitializeComponent()
が、追加されています。
デバッグ開始(F5)します。
MonthCalendarが、表示されました。
が、何かカレンダーの雰囲気が違いますね。
main関数の
//Application.EnableVisualStyles();
のコメントを解除して、デバッグ開始(F5)します。
正常に、MonthCalendarが、表示されました。
今回
Form1.cs
Form1.Designer.cs
Program.cs
の3つのプログラムをForm1.cs の1つにまとめてみました。
一言
1つにまとめるのが、良いという実験ではありません。
C#のプログラム構造について(1) InitializeComponent()
C#のプログラム構造について考えてみます。
まず、Windowsアプリケーションから起動するとForm1が用意されます。
Form1.cs
Form1.Designer.cs
のコードが、自動的に作成されます。
よく見比べるとForm1.csの
InitializeComponent()
は、Form1.Designer.csの
private void InitializeComponent()
{
}
を読み込んでいることが、解ります。
今まで、プロパティで何かを設定すると、ここにコードが追加されます。
そこで、
1)かなり乱暴な実験ですが、
のようにコメントに換え読み込めないようにして、デバッグ開始(F5)します。
InitializeComponent()
を読み込まなくてもタイトルのないFormが、出来ます。
Form1.Designer.csの
this.Text = "Form1";
をForm1.csにコピーしてタイトルを付けてデバッグ開始(F5)します。
this.は、省略できます。
正常に、コンパイルできています。
そこで、今までプロパティで設定したコードを幾つか入れてみます。
このように、正常に反映されています。
public Form1()
{
}
の中にプログラムを追加しているのと
プロパティで追加するのと同じことになります。
2)今度は、
namespace WindowsFormsApplication1
{
}
もコメントにしてデバッグ開始(F5)します。
今度は、ビルドエラーが、発生しました。
これは、1)のForm1.Designer.csで
private void InitializeComponent()
{
}
しか、考えないで、この上のコードを無視した為です。
WindowsFormsApplication1は、Form1.Designer.csの
namespace WindowsFormsApplication1
{
}
全体に、また、Disposeは、
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
プログラムされているので、思い切って、
ソリューションエクスプローラでForm1.Designer.csを削除してみます。
デバッグ開始(F5)します。
このように、Form1.Designer.csを削除しても、正常にコンパイル出来ました。
今回
Form1.cs
Form1.Designer.cs
の2つのプログラムをForm1.cs の1つにまとめてみました。
一言
1つにまとめるのが、良いという実験ではありません。
まず、Windowsアプリケーションから起動するとForm1が用意されます。
Form1.cs
Form1.Designer.cs
のコードが、自動的に作成されます。
よく見比べるとForm1.csの
InitializeComponent()
は、Form1.Designer.csの
private void InitializeComponent()
{
}
を読み込んでいることが、解ります。
今まで、プロパティで何かを設定すると、ここにコードが追加されます。
そこで、
1)かなり乱暴な実験ですが、
のようにコメントに換え読み込めないようにして、デバッグ開始(F5)します。
InitializeComponent()
を読み込まなくてもタイトルのないFormが、出来ます。
Form1.Designer.csの
this.Text = "Form1";
をForm1.csにコピーしてタイトルを付けてデバッグ開始(F5)します。
this.は、省略できます。
正常に、コンパイルできています。
そこで、今までプロパティで設定したコードを幾つか入れてみます。
このように、正常に反映されています。
public Form1()
{
}
の中にプログラムを追加しているのと
プロパティで追加するのと同じことになります。
2)今度は、
namespace WindowsFormsApplication1
{
}
もコメントにしてデバッグ開始(F5)します。
今度は、ビルドエラーが、発生しました。
これは、1)のForm1.Designer.csで
private void InitializeComponent()
{
}
しか、考えないで、この上のコードを無視した為です。
WindowsFormsApplication1は、Form1.Designer.csの
namespace WindowsFormsApplication1
{
}
全体に、また、Disposeは、
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
プログラムされているので、思い切って、
ソリューションエクスプローラでForm1.Designer.csを削除してみます。
デバッグ開始(F5)します。
このように、Form1.Designer.csを削除しても、正常にコンパイル出来ました。
今回
Form1.cs
Form1.Designer.cs
の2つのプログラムをForm1.cs の1つにまとめてみました。
一言
1つにまとめるのが、良いという実験ではありません。