コードを書き込んでいくところで、理解できなくなりました。
https://www.shuwasystem.co.jp/book/9784798058986.html
サンプルファイルを手に入れることにしました。
https://www.shuwasystem.co.jp/support/7980html/5898.html
「間違いボール探し」までの解説が大変丁寧だったのですが、この部分から解説が中途半端というか、この先は自分で考えてということなのか、飛躍しています。
サンプルファイルを見ないことには理解できません。
この本で挫折するのは、おそらくこのあたりからだと思います。
まず、292ページの表5-30と290ページの表5-29が同じでした。292ページの表5-30はSplitContainerコントロールのプロパティの設定のはずなのです。292ページの表5-30の下に画面の図があり、これでなんとか理解できます。
PictureBOxに円を描くところでは、1つの円を描く例が示されています。しかし、本来のコードは、5つの円を描くことになっていて5つ描くプログラムは、
--------------------------------------
// 上のselectPictureBoxに円を描く
private void DrawCircleSelectPictureBox()
{
int height = selectPictureBox.Height; // 高さ
int width = selectPictureBox.Width; // 幅
Bitmap selectCanvas = new Bitmap(width, height);
using (Graphics g = Graphics.FromImage(selectCanvas))
{
for (int i = 0; i < ballCount; i++)
{
g.FillEllipse(brushes[i], i * height, 0, height, height);
}
selectPictureBox.Image = selectCanvas;
}
}
----------------------------------
324ページです。
下の部分に画像を表示するプログラムは、
----------------------------------
// 下のPictureBoxに描画する
private void DrawMainPictureBox(Brush color, string text, bool trueFlag)
{
int height = mainPictureBox.Height; // 高さ
int width = mainPictureBox.Width; // 幅
//描画先とするImageオブジェクトを作成する
if (canvas == null)
{
canvas = new Bitmap(width, height);
}
using (Graphics g = Graphics.FromImage(canvas))
{
// 正解用の背景色にする
if (trueFlag)
{
g.FillRectangle(Brushes.LightPink, 0, 0, width, height);
}
else
{
g.FillRectangle(Brushes.White, 0, 0, width, height);
}
//背景に引数で指定した文字列を描画する
g.DrawString(text,
new Font(fontName, height - height / 4),
color, 0, 0, new StringFormat());
//MainPictureBoxに表示する
mainPictureBox.Image = canvas;
}
------------------------------------
325ページです。
つまり、305ページまでは解説です。まだ時間がかかります。
からない。しばらくながめてみます。
0 件のコメント:
コメントを投稿