回答編集履歴

3

文言修正

2016/01/29 10:22

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- いったんビルドします。するとツールボックスに追加したユーザーボックスが現れますので、それをPanelに乗せます。
119
+ いったんビルドします。するとツールボックスに追加したユーザーコントロールが現れますので、それをPanelに乗せます。
120
120
 
121
121
 
122
122
 

2

ユーザーコントロールを使うやり方を追記

2016/01/29 10:22

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -95,3 +95,53 @@
95
95
  ```
96
96
 
97
97
 
98
+
99
+ ---
100
+
101
+ 追記
102
+
103
+ ユーザーコントロールを使うやり方です。
104
+
105
+
106
+
107
+ プロジェクトメニューに「ユーザーコントロールの追加」でユーザーコントロールが追加できるので、適当な名前を付けて追加します。
108
+
109
+
110
+
111
+ PictureBoxをユーザーコントロールに配置します。ユーザーコントロールは画面からはみ出すぐらい大きくてもかまいません。
112
+
113
+
114
+
115
+ フォームの方には`Panel`を配置します。その際、`Anchor`を上下左右に設定してフォームのサイズ変更に追従するようにし、`AutoScroll`をtrueに設定してスクロールバーではみ出た部分を表示できるようにします。
116
+
117
+
118
+
119
+ いったんビルドします。するとツールボックスに追加したユーザーボックスが現れますので、それをPanelに乗せます。
120
+
121
+
122
+
123
+ PrintPageでDrawToBitmapさせるのを、フォームではなく追加したユーザーコントロールにします。
124
+
125
+
126
+
127
+ コード例3
128
+
129
+ ```C#
130
+
131
+ private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
132
+
133
+ {
134
+
135
+ var image = new Bitmap(userControl11.Width, userControl11.Height);
136
+
137
+ userControl11.DrawToBitmap(image, new Rectangle(0, 0, image.Width, image.Height));
138
+
139
+ e.Graphics.DrawImage(image, e.MarginBounds);
140
+
141
+ e.HasMorePages = false;
142
+
143
+ }
144
+
145
+ ```
146
+
147
+

1

コード例追加

2016/01/29 10:21

投稿

catsforepaw
catsforepaw

スコア5938

test CHANGED
@@ -59,3 +59,39 @@
59
59
  ```
60
60
 
61
61
  最小限のコードなのでページレイアウトとか画像の縦横比とか考慮されていませんが、その辺は適宜実装してください。
62
+
63
+
64
+
65
+ ---
66
+
67
+ コード例2
68
+
69
+ ```C#
70
+
71
+ private void button1_Click(object sender, EventArgs e)
72
+
73
+ {
74
+
75
+ printDocument1.Print();
76
+
77
+ }
78
+
79
+
80
+
81
+ private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
82
+
83
+ {
84
+
85
+ var image = new Bitmap(this.Width, this.Height);
86
+
87
+ this.DrawToBitmap(image, new Rectangle(0, 0, this.Width, this.Height));
88
+
89
+ e.Graphics.DrawImage(image, e.MarginBounds);
90
+
91
+ e.HasMorePages = false;
92
+
93
+ }
94
+
95
+ ```
96
+
97
+