デュアルディスプレイのセカンドモニターにPDF、動画、画像を表示。
@@ -22,23 +22,56 @@ | ||
22 | 22 | 'コード エディターを使って変更しないでください。 |
23 | 23 | <System.Diagnostics.DebuggerStepThrough()> _ |
24 | 24 | Private Sub InitializeComponent() |
25 | - Me.btnRotate = New System.Windows.Forms.Button() | |
25 | + Me.btnRotate180 = New System.Windows.Forms.Button() | |
26 | + Me.btnRotateM90 = New System.Windows.Forms.Button() | |
27 | + Me.btnRotate90 = New System.Windows.Forms.Button() | |
28 | + Me.btnRotate0 = New System.Windows.Forms.Button() | |
26 | 29 | Me.SuspendLayout() |
27 | 30 | ' |
28 | - 'btnRotate | |
31 | + 'btnRotate180 | |
29 | 32 | ' |
30 | - Me.btnRotate.Location = New System.Drawing.Point(232, 58) | |
31 | - Me.btnRotate.Name = "btnRotate" | |
32 | - Me.btnRotate.Size = New System.Drawing.Size(90, 51) | |
33 | - Me.btnRotate.TabIndex = 0 | |
34 | - Me.btnRotate.Text = "180度回転" | |
35 | - Me.btnRotate.UseVisualStyleBackColor = True | |
33 | + Me.btnRotate180.Location = New System.Drawing.Point(232, 80) | |
34 | + Me.btnRotate180.Name = "btnRotate180" | |
35 | + Me.btnRotate180.Size = New System.Drawing.Size(90, 51) | |
36 | + Me.btnRotate180.TabIndex = 0 | |
37 | + Me.btnRotate180.Text = "180度回転" | |
38 | + Me.btnRotate180.UseVisualStyleBackColor = True | |
36 | 39 | ' |
40 | + 'btnRotateM90 | |
41 | + ' | |
42 | + Me.btnRotateM90.Location = New System.Drawing.Point(136, 58) | |
43 | + Me.btnRotateM90.Name = "btnRotateM90" | |
44 | + Me.btnRotateM90.Size = New System.Drawing.Size(90, 51) | |
45 | + Me.btnRotateM90.TabIndex = 0 | |
46 | + Me.btnRotateM90.Text = "左90度" | |
47 | + Me.btnRotateM90.UseVisualStyleBackColor = True | |
48 | + ' | |
49 | + 'btnRotate90 | |
50 | + ' | |
51 | + Me.btnRotate90.Location = New System.Drawing.Point(328, 58) | |
52 | + Me.btnRotate90.Name = "btnRotate90" | |
53 | + Me.btnRotate90.Size = New System.Drawing.Size(90, 51) | |
54 | + Me.btnRotate90.TabIndex = 0 | |
55 | + Me.btnRotate90.Text = "右90度" | |
56 | + Me.btnRotate90.UseVisualStyleBackColor = True | |
57 | + ' | |
58 | + 'btnRotate0 | |
59 | + ' | |
60 | + Me.btnRotate0.Location = New System.Drawing.Point(232, 23) | |
61 | + Me.btnRotate0.Name = "btnRotate0" | |
62 | + Me.btnRotate0.Size = New System.Drawing.Size(90, 51) | |
63 | + Me.btnRotate0.TabIndex = 0 | |
64 | + Me.btnRotate0.Text = "0度" | |
65 | + Me.btnRotate0.UseVisualStyleBackColor = True | |
66 | + ' | |
37 | 67 | 'CtlImage |
38 | 68 | ' |
39 | 69 | Me.AutoScaleDimensions = New System.Drawing.SizeF(8.0!, 15.0!) |
40 | 70 | Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font |
41 | - Me.Controls.Add(Me.btnRotate) | |
71 | + Me.Controls.Add(Me.btnRotate90) | |
72 | + Me.Controls.Add(Me.btnRotate0) | |
73 | + Me.Controls.Add(Me.btnRotateM90) | |
74 | + Me.Controls.Add(Me.btnRotate180) | |
42 | 75 | Me.Name = "CtlImage" |
43 | 76 | Me.Size = New System.Drawing.Size(600, 179) |
44 | 77 | Me.ResumeLayout(False) |
@@ -45,5 +78,8 @@ | ||
45 | 78 | |
46 | 79 | End Sub |
47 | 80 | |
48 | - Friend WithEvents btnRotate As Button | |
81 | + Friend WithEvents btnRotate180 As Button | |
82 | + Friend WithEvents btnRotateM90 As Button | |
83 | + Friend WithEvents btnRotate90 As Button | |
84 | + Friend WithEvents btnRotate0 As Button | |
49 | 85 | End Class |
@@ -4,17 +4,30 @@ | ||
4 | 4 | |
5 | 5 | Private _pictureBox As PictureBox |
6 | 6 | |
7 | - Private Sub btnRotate_Click(sender As Object, e As EventArgs) Handles btnRotate.Click | |
7 | + Private Sub Rotate(flip As RotateFlipType) | |
8 | 8 | Dim bmp As Bitmap = New Bitmap(_fileViewParam.FileName) |
9 | - '180度回転して、水平方向に反転 | |
10 | - '"Rotate180FlipX"の"Rotate180"は180度回転することを意味し、 | |
11 | - '"FlipX"は水平方向に反転することを意味する | |
12 | - bmp.RotateFlip(RotateFlipType.Rotate180FlipX) | |
13 | - '表示 | |
9 | + bmp.RotateFlip(flip) | |
14 | 10 | _pictureBox.Image = bmp |
15 | 11 | End Sub |
12 | + Private Sub None() | |
13 | + _pictureBox.ImageLocation = _fileViewParam.FileName | |
14 | + End Sub | |
15 | + Private Sub btnRotate_Click(sender As Object, e As EventArgs) Handles btnRotate180.Click | |
16 | + Rotate(RotateFlipType.Rotate180FlipNone) | |
17 | + End Sub | |
16 | 18 | |
19 | + Private Sub btnRotate90_Click(sender As Object, e As EventArgs) Handles btnRotate90.Click | |
20 | + Rotate(RotateFlipType.Rotate90FlipNone) | |
21 | + End Sub | |
17 | 22 | |
23 | + Private Sub btnRotate0_Click(sender As Object, e As EventArgs) Handles btnRotate0.Click | |
24 | + None() | |
25 | + End Sub | |
26 | + | |
27 | + Private Sub btnRotate270_Click(sender As Object, e As EventArgs) Handles btnRotateM90.Click | |
28 | + Rotate(RotateFlipType.Rotate270FlipNone) | |
29 | + End Sub | |
30 | + | |
18 | 31 | Private _fileViewParam As FileViewParam |
19 | 32 | |
20 | 33 | Public Sub SetFileInfo(f As FileViewParam) |
@@ -23,9 +36,11 @@ | ||
23 | 36 | Return |
24 | 37 | End If |
25 | 38 | _pictureBox = _dispacher.ShowImage() |
26 | - _pictureBox.ImageLocation = _fileViewParam.FileName | |
39 | + None() | |
27 | 40 | _pictureBox.SizeMode = PictureBoxSizeMode.Zoom 'サイズ調整 |
28 | 41 | |
29 | 42 | |
30 | 43 | End Sub |
44 | + | |
45 | + | |
31 | 46 | End Class |
@@ -24,7 +24,6 @@ | ||
24 | 24 | Private Sub InitializeComponent() |
25 | 25 | Me.btnPDFNext = New System.Windows.Forms.Button() |
26 | 26 | Me.btnPDFBack = New System.Windows.Forms.Button() |
27 | - Me.btnPDFLast = New System.Windows.Forms.Button() | |
28 | 27 | Me.btnPDFFirst = New System.Windows.Forms.Button() |
29 | 28 | Me.BackgroundWorker1 = New System.ComponentModel.BackgroundWorker() |
30 | 29 | Me.btnNextHalf = New System.Windows.Forms.Button() |
@@ -48,15 +47,6 @@ | ||
48 | 47 | Me.btnPDFBack.Text = "前へ" |
49 | 48 | Me.btnPDFBack.UseVisualStyleBackColor = True |
50 | 49 | ' |
51 | - 'btnPDFLast | |
52 | - ' | |
53 | - Me.btnPDFLast.Location = New System.Drawing.Point(193, 26) | |
54 | - Me.btnPDFLast.Name = "btnPDFLast" | |
55 | - Me.btnPDFLast.Size = New System.Drawing.Size(49, 23) | |
56 | - Me.btnPDFLast.TabIndex = 26 | |
57 | - Me.btnPDFLast.Text = "最後へ" | |
58 | - Me.btnPDFLast.UseVisualStyleBackColor = True | |
59 | - ' | |
60 | 50 | 'btnPDFFirst |
61 | 51 | ' |
62 | 52 | Me.btnPDFFirst.Location = New System.Drawing.Point(25, 26) |
@@ -68,7 +58,7 @@ | ||
68 | 58 | ' |
69 | 59 | 'btnNextHalf |
70 | 60 | ' |
71 | - Me.btnNextHalf.Location = New System.Drawing.Point(137, 75) | |
61 | + Me.btnNextHalf.Location = New System.Drawing.Point(112, 76) | |
72 | 62 | Me.btnNextHalf.Name = "btnNextHalf" |
73 | 63 | Me.btnNextHalf.Size = New System.Drawing.Size(75, 23) |
74 | 64 | Me.btnNextHalf.TabIndex = 28 |
@@ -82,7 +72,6 @@ | ||
82 | 72 | Me.Controls.Add(Me.btnNextHalf) |
83 | 73 | Me.Controls.Add(Me.btnPDFNext) |
84 | 74 | Me.Controls.Add(Me.btnPDFBack) |
85 | - Me.Controls.Add(Me.btnPDFLast) | |
86 | 75 | Me.Controls.Add(Me.btnPDFFirst) |
87 | 76 | Me.Name = "ctlPdf" |
88 | 77 | Me.Size = New System.Drawing.Size(796, 133) |
@@ -91,7 +80,6 @@ | ||
91 | 80 | End Sub |
92 | 81 | Friend WithEvents btnPDFNext As Button |
93 | 82 | Friend WithEvents btnPDFBack As Button |
94 | - Friend WithEvents btnPDFLast As Button | |
95 | 83 | Friend WithEvents btnPDFFirst As Button |
96 | 84 | Friend WithEvents BackgroundWorker1 As System.ComponentModel.BackgroundWorker |
97 | 85 | Friend WithEvents btnNextHalf As Button |
@@ -21,7 +21,7 @@ | ||
21 | 21 | _viewer.PrePage() |
22 | 22 | End Sub |
23 | 23 | |
24 | - Private Sub btnLast_Click(sender As Object, e As EventArgs) Handles btnPDFLast.Click | |
24 | + Private Sub btnLast_Click(sender As Object, e As EventArgs) | |
25 | 25 | 'todo |
26 | 26 | End Sub |
27 | 27 | #End Region |
@@ -178,6 +178,7 @@ | ||
178 | 178 | ' |
179 | 179 | 'lstPDFFiles |
180 | 180 | ' |
181 | + Me.lstPDFFiles.AllowDrop = True | |
181 | 182 | Me.lstPDFFiles.FormattingEnabled = True |
182 | 183 | Me.lstPDFFiles.ItemHeight = 15 |
183 | 184 | Me.lstPDFFiles.Location = New System.Drawing.Point(34, 170) |
@@ -35,8 +35,12 @@ | ||
35 | 35 | Dim serializer As New System.Xml.Serialization.XmlSerializer( |
36 | 36 | GetType(List(Of FileViewParam))) |
37 | 37 | '読み込むファイルを開く |
38 | + Dim filename = "lstPDFFiles.xml" | |
39 | + If Not IO.File.Exists(filename) Then | |
40 | + Return | |
41 | + End If | |
38 | 42 | Using sr As New System.IO.StreamReader( |
39 | - "lstPDFFiles.xml", New System.Text.UTF8Encoding(False)) | |
43 | + filename, New System.Text.UTF8Encoding(False)) | |
40 | 44 | 'XMLファイルから読み込み、逆シリアル化する |
41 | 45 | fvinfos = |
42 | 46 | DirectCast(serializer.Deserialize(sr), List(Of FileViewParam)) |
@@ -45,7 +49,9 @@ | ||
45 | 49 | For Each info In fvinfos |
46 | 50 | lstPDFFiles.Items.Add(info) |
47 | 51 | Next |
52 | + | |
48 | 53 | Catch ex As Exception |
54 | + | |
49 | 55 | MessageBox.Show(ex.Message) |
50 | 56 | End Try |
51 | 57 | loading = False |
@@ -207,7 +213,7 @@ | ||
207 | 213 | |
208 | 214 | Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click |
209 | 215 | OpenFileDialog1.Multiselect = True |
210 | - OpenFileDialog1.Filter = "画像、動画、PDFファイル|*.pdf;*.bmp;*.gif;*.png;|All Files(*.*)|*.*;" | |
216 | + OpenFileDialog1.Filter = "画像、動画、PDFファイル|*.pdf;*.bmp;*.gif;*.png;*.jpeg;*jpg;|All Files(*.*)|*.*;" | |
211 | 217 | OpenFileDialog1.FileName = txtPDFFileName.Text |
212 | 218 | Dim ret = OpenFileDialog1.ShowDialog() |
213 | 219 | If ret = Windows.Forms.DialogResult.Cancel Then |
@@ -227,12 +233,34 @@ | ||
227 | 233 | _dispacher.CloseViewers() |
228 | 234 | End Sub |
229 | 235 | |
236 | + Private Sub lstPDFFiles_DragEnter(sender As Object, e As DragEventArgs) Handles lstPDFFiles.DragEnter | |
237 | + 'コントロール内にドラッグされたとき実行される | |
238 | + If e.Data.GetDataPresent(DataFormats.FileDrop) Then | |
239 | + 'ドラッグされたデータ形式を調べ、ファイルのときはコピーとする | |
240 | + e.Effect = DragDropEffects.Copy | |
241 | + Else | |
242 | + 'ファイル以外は受け付けない | |
243 | + e.Effect = DragDropEffects.None | |
244 | + End If | |
245 | + End Sub | |
230 | 246 | |
247 | + Private Sub lstPDFFiles_DragDrop(sender As Object, e As DragEventArgs) Handles lstPDFFiles.DragDrop | |
248 | + Dim items = lstPDFFiles.Items | |
249 | + Dim fileName As String() = CType( | |
250 | + e.Data.GetData(DataFormats.FileDrop, False), | |
251 | + String()) | |
252 | + 'ListBoxに追加する | |
253 | + For Each f In fileName | |
254 | + items.Add(New FileViewParam(f)) | |
255 | + Next | |
256 | + End Sub | |
231 | 257 | |
232 | 258 | |
233 | 259 | |
234 | 260 | |
235 | 261 | |
262 | + | |
263 | + | |
236 | 264 | #End Region |
237 | 265 | |
238 | 266 | End Class |
\ No newline at end of file |