- PR -

フォームのGrid表示について

1
投稿者投稿内容
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-05-30 10:43
こんにちは!!

現在、Formの背景に、デザイン時と同様に実行時にもGridを表示させようとしています。
ネットで検索してヒットしたこちらのサイト
http://dobon.net/vb/dotnet/graphics/drawcontrols.html
を参考に、「ControlPaint.DrawGrid」を使用してコードを書いてみたのですが
Gridの表示がされませんでした。

実装はFormのLoadイベントで、以下のように記述しました。
ControlPaint.DrawGrid(
  System.Drawing.Graphics.FromHwnd(this.Handle),
  this.DisplayRectangle,
  new Size(8, ,
  this.BackColor);

環境は、VS.NET2003のC#です。
皆様のお知恵を、ぜひお貸し下さい!!
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2006-05-30 11:05
引用:

梶さんの書き込み (2006-05-30 10:43) より:

実装はFormのLoadイベントで、以下のように記述しました。
ControlPaint.DrawGrid(
  System.Drawing.Graphics.FromHwnd(this.Handle),
  this.DisplayRectangle,
  new Size(8, ,
  this.BackColor);



次のようにしたら動きました。
Loadイベントだとダメっぽいですね。

コード:
		private void Form1_Shown(object sender, EventArgs e) {
		//PictureBox1のGraphicsオブジェクトを取得
		Graphics g = this.CreateGraphics();


		//1ピクセルの点線で構成されたグリッドの描画
		ControlPaint.DrawGrid(g, new Rectangle(60, 110, 40, 40),
			new Size(8, 5), Color.White);

		//リソースを開放する
		g.Dispose();
		}

じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-30 11:14
引用:

梶さんの書き込み (2006-05-30 10:43) より:

実装はFormのLoadイベントで、以下のように記述しました。


これに限らず、描画系は Load イベントで記述しないようにしましょう。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-05-30 11:15
R・田中一郎さん、こんにちは!!

なるほど、Loadイベントだとだめなんですね。
「Show」イベントってあったかな?と思ったので
「Paint」イベントに記述を移してみたらうまくいきました。

R・田中一郎さん、ありがとうございました〜。
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-05-30 11:22
引用:

じゃんぬねっとさんの書き込み (2006-05-30 11:14) より:

これに限らず、描画系は Load イベントで記述しないようにしましょう。




じゃんぬさん、こんにちは!!

ご指摘ありがとうございます。
Loadイベントって、イメージ的にフォームの入り口って感じだったので
最初の一回だけ実行したいコードは、ここに記述しておけばよいのかな?
などと思ってました。

ちなみに、一般的に、描写系を記述するのは、どのイベントが
良いとされているのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-30 11:41
引用:

梶さんの書き込み (2006-05-30 11:22) より:

Loadイベントって、イメージ的にフォームの入り口って感じだったので
最初の一回だけ実行したいコードは、ここに記述しておけばよいのかな?
などと思ってました。


「Form を表示すると決まりきった状態での初期化」であれば、その認識でも良いと思います。

引用:

ちなみに、一般的に、描写系を記述するのは、どのイベントが良いとされているのでしょうか?


描画系で「最初に 1 回」というのは普通はないと思いますね。
(再描画のことを考えてみると)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ベテラン
会議室デビュー日: 2005/05/16
投稿数: 85
お住まい・勤務地: 千葉県在住
投稿日時: 2006-05-30 13:12
引用:

じゃんぬねっとさんの書き込み (2006-05-30 11:41) より:

描画系で「最初に 1 回」というのは普通はないと思いますね。
(再描画のことを考えてみると)




ちょうど今、動的にコントロールを作成するプログラムの
プロットを作ってまして。
Loadイベントでコントロールを追加しようと考えてました。

よくよく考えてみたら、コントロールの動的作成は
「描画系」ではないですよね。

#Loadで出来ないと言われたらどうしようって思っちゃいましたw
1

スキルアップ/キャリアアップ(JOB@IT)