質問編集履歴

2

コードの表記を修正しました

2020/07/29 06:55

投稿

ata_rashi
ata_rashi

スコア4

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ????MainFormでは,ボタンをクリックすると新しいForm2を表示させます.
26
26
 
27
-
27
+ ```
28
28
 
29
29
  private void button1_Click(object sender, EventArgs e)
30
30
 
@@ -36,13 +36,15 @@
36
36
 
37
37
  }
38
38
 
39
+ ```
40
+
39
41
 
40
42
 
41
43
 
42
44
 
43
45
  ????Form2では,ピクチャーボックスに長方形を描画するメソッドと,ピクチャーボックスを消去するメソッドを用意しています.
44
46
 
45
-
47
+ ```
46
48
 
47
49
     public void DrawRec()
48
50
 
@@ -86,7 +88,7 @@
86
88
 
87
89
  }
88
90
 
89
-
91
+ ```
90
92
 
91
93
 
92
94
 
@@ -95,6 +97,16 @@
95
97
  ピクチャーボックスに長方形が描画された後,2秒後にそれが消去されるプログラムにしようと考えました.しかし,ピクチャーボックスには何も表示されないという結果になってしまいます.
96
98
 
97
99
  どこか誤っている箇所があれば,ご指摘いただけないでしょうか.
100
+
101
+
102
+
103
+ また,Form2のインスタンスを生成する部分で上手くいっていないことが判明しました.
104
+
105
+ その部分で具体的な改善策などご教授して頂ければ幸いです.
106
+
107
+
108
+
109
+ ```
98
110
 
99
111
  class Class1
100
112
 
@@ -147,3 +159,5 @@
147
159
 
148
160
 
149
161
  }
162
+
163
+ ```

1

質問内容が具体的になるように修正しました.

2020/07/29 06:55

投稿

ata_rashi
ata_rashi

スコア4

test CHANGED
File without changes
test CHANGED
@@ -11,3 +11,139 @@
11
11
 
12
12
 
13
13
  現在,MainのFormのあるボタンをクリックすると,別にForm2を表示させるコードを組んでおり,そのForm2のピクチャーボックスに図を描画しようと考えています.
14
+
15
+
16
+
17
+ ___________________________________________________________________________
18
+
19
+ 以下,追記内容です.
20
+
21
+ 上記の処理を検証するために,開発中のシステムとは別に,簡単なプログラムを組んでいます.
22
+
23
+
24
+
25
+ ????MainFormでは,ボタンをクリックすると新しいForm2を表示させます.
26
+
27
+
28
+
29
+ private void button1_Click(object sender, EventArgs e)
30
+
31
+ {
32
+
33
+ Form2 form2 = new Form2();
34
+
35
+ form2.Show();
36
+
37
+ }
38
+
39
+
40
+
41
+
42
+
43
+ ????Form2では,ピクチャーボックスに長方形を描画するメソッドと,ピクチャーボックスを消去するメソッドを用意しています.
44
+
45
+
46
+
47
+    public void DrawRec()
48
+
49
+ {
50
+
51
+ //ピクチャーボックスと同じ大きさのビットマップを作成する
52
+
53
+ Bitmap canvas = new Bitmap(pictureBox1.Width, pictureBox1.Height);
54
+
55
+
56
+
57
+ Graphics g = Graphics.FromImage(canvas);
58
+
59
+
60
+
61
+ Pen p = new Pen(Color.Black, 1);
62
+
63
+ g.DrawRectangle(p, 5, 5, 400, 400);
64
+
65
+
66
+
67
+ p.Dispose();
68
+
69
+ g.Dispose();
70
+
71
+
72
+
73
+ pictureBox1.Image = canvas;
74
+
75
+ }
76
+
77
+
78
+
79
+ public void DrawNothing()
80
+
81
+ {
82
+
83
+
84
+
85
+ pictureBox1.Image = null;
86
+
87
+ }
88
+
89
+
90
+
91
+
92
+
93
+ ????ここで,Mainフォームのあるボタンをクリックすると,Class1のPracticeメソッドが実行されるようにしています.
94
+
95
+ ピクチャーボックスに長方形が描画された後,2秒後にそれが消去されるプログラムにしようと考えました.しかし,ピクチャーボックスには何も表示されないという結果になってしまいます.
96
+
97
+ どこか誤っている箇所があれば,ご指摘いただけないでしょうか.
98
+
99
+ class Class1
100
+
101
+ {
102
+
103
+ public void Practice()
104
+
105
+ {
106
+
107
+ int a = 1;
108
+
109
+ int b = 2;
110
+
111
+ int c = 3;
112
+
113
+
114
+
115
+ if (b == 2)
116
+
117
+ {
118
+
119
+ Form2 form = new Form2();
120
+
121
+ form.DrawRec();
122
+
123
+ }
124
+
125
+
126
+
127
+ System.Threading.Thread.Sleep(2000);
128
+
129
+
130
+
131
+
132
+
133
+ if (a == 1)
134
+
135
+ {
136
+
137
+ Form2 form2 = new Form2();
138
+
139
+ form2.DrawNothing();
140
+
141
+ }
142
+
143
+
144
+
145
+ }
146
+
147
+
148
+
149
+ }