フォーム上に複数の四角を動的に配置するために、ボタン入力されるたびに増減、変形、移動を行いたいのですが
私の書いたコードでは初期化の位置が悪いようで毎回一つの枠しか表示されません。
数値入力のボタンや、枠のon/offの切り替えが行われるたびにDrawFrameを呼んで、
BitmapとGraphicsを毎回初期化しているのが原因だと思うのですが、
どのように変更すればよいでしょうか?
外に出すと参照云々でエラーが出てしまい、flagで一回だけ行うなど考えてみたのですが、
ほかに何かありませんでしょうか?
C#
1 /////描画////// 2 private void DrawFrame(int TP, decimal x, decimal y, decimal w, decimal h) 3 { 4 int X = Decimal.ToInt32(x); 5 int Y = Decimal.ToInt32(y); 6 int W = Decimal.ToInt32(w); 7 int H = Decimal.ToInt32(h); 8 9 Bitmap FrameCanvas = new Bitmap(PictureBox1.Width, PictureBox1.Height); 10 Graphics Frame = Graphics.FromImage(FrameCanvas); 11 12 //////枠の作成////// 13 Pen PenState = new Pen(Color.FromArgb(TP, R, G, B), 2); 14 Frame.DrawRectangle(PenState, X, Y, W, H); 15 PictureBox1.Image = FrameCanvas; 16 17 Frame.Dispose(); 18 PenState.Dispose(); 19 } 20
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/16 01:47
2019/10/16 01:53
2019/10/16 02:12