C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[6]: 'Graphics'の定義がありません。


(過去ログ 47 を表示中)

[トピック内 8 記事 (1 - 8 表示)]  << 0 >>

■25027 / inTopicNo.1)  'Graphics'の定義がありません。
  
□投稿者/ あこ (1回)-(2008/09/14(Sun) 05:56:40)

分類:[.NET 全般] 

はじめまして。 Visual Studio .NET 2003 でC#を勉強中です。
本やネットなどで調べているのですが、状況改善には至っていません。
初歩的な質問だとは思いますが、皆様のお力をお貸しいただけないでしょうか宜しくお願い致します。



//1
using System.Drawing;
using System.Windows.Forms;

public class Test : Form
{
private Image image;

protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
if(image == null) image = Image.FromFile("aiai1.jpg");
e.Graphics.DrawImage(image, 0, 0);

Font font1 = new Font("Arial", 80, FontStyle.Bold);
SolidBrush brush1 = new SolidBrush(Color.Black);
string text1 = "abcde";
RectangleF rect1 = new RectangleF(120, 100, 784, 120);
e.Graphics.DrawString(text1, font1, brush1, rect1);
}

//ココに下記のMouseDownを入れようとしてます。

static void Main()
{
Application.Run(new Test());
}
}




//2
Protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);

image = Image.FromFile("aiai2.jpg");
e.Graphics.DrawImage(image, 0, 0);

string text2 = "fghij";
RectangleF rect1 = new RectangleF(120, 100, 784, 120);
e.Graphics.DrawString(text2, font1, brush1, rect1);
}


私が作成したソースはこのような感じなのですが、//1 だとaiai1.jpgを表示してabcdeとコメントを書いたものが表示されます。
これに//2を書き加えて、クリック(やキー)操作で次のaiai2.jpgを表示させてfghijをコメントとして表示させたいのです。
次にaiai3..aiai4..aiti5..と続けていきたいのですが
Protected override void OnMouseDown(MouseEventArgs e)の中でGraphicsが使えないのです。
もし、お時間に余裕ありましたら教えて頂けないでしょうか

引用返信 編集キー/
■25029 / inTopicNo.2)  Re[1]: 'Graphics'の定義がありません。
□投稿者/ あられ (1回)-(2008/09/14(Sun) 08:24:54)
No25027 (あこ さん) に返信
> はじめまして。 Visual Studio .NET 2003 でC#を勉強中です。
> 本やネットなどで調べているのですが、状況改善には至っていません。
> 初歩的な質問だとは思いますが、皆様のお力をお貸しいただけないでしょうか宜しくお願い致します。
>
>
>
> //1
> using System.Drawing;
> using System.Windows.Forms;
>
> public class Test : Form
> {
> private Image image;
>
> protected override void OnPaint(PaintEventArgs e)
> {
> base.OnPaint(e);
> if(image == null) image = Image.FromFile("aiai1.jpg");
> e.Graphics.DrawImage(image, 0, 0);
>
> Font font1 = new Font("Arial", 80, FontStyle.Bold);
> SolidBrush brush1 = new SolidBrush(Color.Black);
> string text1 = "abcde";
> RectangleF rect1 = new RectangleF(120, 100, 784, 120);
> e.Graphics.DrawString(text1, font1, brush1, rect1);
> }
>
> //ココに下記のMouseDownを入れようとしてます。
>
> static void Main()
> {
> Application.Run(new Test());
> }
> }
>
>
>
>
> //2
> Protected override void OnMouseDown(MouseEventArgs e)
> {
> base.OnMouseDown(e);
>
> image = Image.FromFile("aiai2.jpg");
> e.Graphics.DrawImage(image, 0, 0);
>
> string text2 = "fghij";
> RectangleF rect1 = new RectangleF(120, 100, 784, 120);
> e.Graphics.DrawString(text2, font1, brush1, rect1);
> }
>
>
> 私が作成したソースはこのような感じなのですが、//1 だとaiai1.jpgを表示してabcdeとコメントを書いたものが表示されます。
> これに//2を書き加えて、クリック(やキー)操作で次のaiai2.jpgを表示させてfghijをコメントとして表示させたいのです。
> 次にaiai3..aiai4..aiti5..と続けていきたいのですが
> Protected override void OnMouseDown(MouseEventArgs e)の中でGraphicsが使えないのです。
> もし、お時間に余裕ありましたら教えて頂けないでしょうか
>

http://homepage1.nifty.com/rucio/main/main.htm
余計なことかもしれませんが、最新のvB2008は使い勝手がよくなってますよ。

引用返信 編集キー/
■25032 / inTopicNo.3)  Re[1]: 'Graphics'の定義がありません。
□投稿者/ やじゅ (625回)-(2008/09/14(Sun) 09:50:24)
やじゅ さんの Web サイト
No25027 (あこ さん) に返信
> protected override void OnPaint(PaintEventArgs e)
> Protected override void OnMouseDown(MouseEventArgs e)
>

eは同じでも、型が違います。

OnMouseDownの中でやるなら、
Graphics g = this.CreateGraphics();

http://msdn.microsoft.com/ja-jp/library/aa287524(VS.71).aspx
引用返信 編集キー/
■25036 / inTopicNo.4)  Re[2]: 'Graphics'の定義がありません。
□投稿者/ よねKEN (12回)-(2008/09/14(Sun) 11:03:14)
(1) privateな変数としてImageクラスの変数(仮にcanvasと名付けたとします)を新たに用意します。
(2) FormのLoadイベントの中でBitmapクラスのインスタンスを作成し、この変数canvasにセットします。
(3) jpgファイルの描画やコメントの描画は描画したいタイミングで、
変数canvasを引数としてGraphics.FromImageメソッドを実行した結果取得できるGraphicsオブジェクトに対して描画を実行します。
(4) (3)の直後にthis.Invalidate()を実行して、Formの再描画を発生させます。すると結果的にPaintイベントが発生します。
(5) (3)で描画した内容は(2)で用意したBitmapに対して描画されています。このままでは画面には見えないので、
FormのPaintイベントで、e.Graphics.DrawImageでcanvasの内容をForm自身に描画します。

つまり、いろいろな描画したい内容はあらかじめ用意しておいたBitmapオブジェクトに描画する。
そしてPaintイベントではこのBitmapオブジェクトを画面に描画する。
という流れです。

引用返信 編集キー/
■25050 / inTopicNo.5)  Re[3]: 'Graphics'の定義がありません。
□投稿者/ あこ (2回)-(2008/09/14(Sun) 18:21:57)
No25029 (あられ さん) に返信
> 余計なことかもしれませんが、最新のvB2008は使い勝手がよくなってますよ。
2008ってあるんですね2005までしか知りませんでした。
ですが、もうすこし2003で頑張ってみようと思っているのです。
教えてくれてありがとうございます。


No25032 (やじゅ さん) に返信
> OnMouseDownの中でやるなら、
> Graphics g = this.CreateGraphics();
試してみたのですが、うまく動作しませんでした。
この場合だと、
g.Graphics.DrawImage(image, 0, 0);
という感じで使えるのですよね?
プログラミング初心者のため使い方が合っているかどうか解らなくて…



No25036 (よねKEN さん) に返信
> (1) privateな変数としてImageクラスの変数(仮にcanvasと名付けたとします)を新たに用意します。
> (2) FormのLoadイベントの中でBitmapクラスのインスタンスを作成し、この変数canvasにセットします。
> (3) jpgファイルの描画やコメントの描画は描画したいタイミングで、
> 変数canvasを引数としてGraphics.FromImageメソッドを実行した結果取得できるGraphicsオブジェクトに対して描画を実行します。
> (4) (3)の直後にthis.Invalidate()を実行して、Formの再描画を発生させます。すると結果的にPaintイベントが発生します。
> (5) (3)で描画した内容は(2)で用意したBitmapに対して描画されています。このままでは画面には見えないので、
> FormのPaintイベントで、e.Graphics.DrawImageでcanvasの内容をForm自身に描画します。
なんとなくですが、流れは把握できました。
(1)はすんなりと出来たのですが、(2)のBitmapクラスのインスタンスを作成し変数をセットとありますが、
作成の仕方、セットのがわかりません。もう少し力をつけてから質問してくださいと言われそうですが、
もう一度教えて頂けないでしょうか
引用返信 編集キー/
■25074 / inTopicNo.6)  Re[4]: 'Graphics'の定義がありません。
□投稿者/ お節介 (1回)-(2008/09/15(Mon) 09:11:32)
2008/09/15(Mon) 09:27:01 編集(投稿者)

No25050 (あこ さん) に返信
> ■No25029 (あられ さん) に返信
>>余計なことかもしれませんが、最新のvB2008は使い勝手がよくなってますよ。
> 2008ってあるんですね2005までしか知りませんでした。
> ですが、もうすこし2003で頑張ってみようと思っているのです。
> 教えてくれてありがとうございます。
>
>
> ■No25032 (やじゅ さん) に返信
>>OnMouseDownの中でやるなら、
>>Graphics g = this.CreateGraphics();
> 試してみたのですが、うまく動作しませんでした。
> この場合だと、
> g.Graphics.DrawImage(image, 0, 0);
> という感じで使えるのですよね?
> プログラミング初心者のため使い方が合っているかどうか解らなくて…
>
>
>
> ■No25036 (よねKEN さん) に返信
>>(1) privateな変数としてImageクラスの変数(仮にcanvasと名付けたとします)を新たに用意します。
>>(2) FormのLoadイベントの中でBitmapクラスのインスタンスを作成し、この変数canvasにセットします。
>>(3) jpgファイルの描画やコメントの描画は描画したいタイミングで、
>> 変数canvasを引数としてGraphics.FromImageメソッドを実行した結果取得できるGraphicsオブジェクトに対して描画を実行します。
>>(4) (3)の直後にthis.Invalidate()を実行して、Formの再描画を発生させます。すると結果的にPaintイベントが発生します。
>>(5) (3)で描画した内容は(2)で用意したBitmapに対して描画されています。このままでは画面には見えないので、
>> FormのPaintイベントで、e.Graphics.DrawImageでcanvasの内容をForm自身に描画します。
> なんとなくですが、流れは把握できました。
> (1)はすんなりと出来たのですが、(2)のBitmapクラスのインスタンスを作成し変数をセットとありますが、
> 作成の仕方、セットのがわかりません。

Bitmapクラスのインスタンスは、Bitmap bmp= new Bitmap();で生成されます。
http://software.yworks.net/program/class.html
引用返信 編集キー/
■25354 / inTopicNo.7)  Re[5]: 'Graphics'の定義がありません。
□投稿者/ あこ (3回)-(2008/09/18(Thu) 05:22:01)
No25074 (お節介 さん) に返信

> Bitmapクラスのインスタンスは、Bitmap bmp= new Bitmap();で生成されます。
> http://software.yworks.net/program/class.html

返事遅れて申し訳ないです。
URLつきで解りやすく教えて頂きありがとうございます。
さっそくチャレンジしてきます!!
引用返信 編集キー/
■25355 / inTopicNo.8)  Re[6]: 'Graphics'の定義がありません。
□投稿者/ あこ (4回)-(2008/09/18(Thu) 05:22:10)
No25354 (あこ さん) に返信
> ■No25074 (お節介 さん) に返信
>
>>Bitmapクラスのインスタンスは、Bitmap bmp= new Bitmap();で生成されます。
>>http://software.yworks.net/program/class.html
>
> 返事遅れて申し訳ないです。
> URLつきで解りやすく教えて頂きありがとうございます。
> さっそくチャレンジしてきます!!
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -