Option Explicit On Option Strict On Public Class Form1 Private thePicBox As PictureBox Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim i As Integer Dim name As String Dim hsname() As String For Each name In [Enum].GetNames(GetType(System.Drawing.Drawing2D.HatchStyle)) ListBox1.Items.Add(name) Next name ReDim hsname(ListBox1.Items.Count - 1) For i = 0 To ListBox1.Items.Count - 1 hsname(i) = ListBox1.Items(i).ToString() Next i Array.Sort(hsname) ListBox1.Items.Clear() ListBox1.Items.AddRange(hsname) ListBox1.SelectedIndex = 0 PictureBox1.Visible = True PictureBox2.Visible = False Button1.Text = "Draw" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim bmp As Bitmap Dim g As Graphics Dim colF As Color = Color.Black Dim colB As Color = Color.White Dim hs As System.Drawing.Drawing2D.HatchStyle Dim dbrush As System.Drawing.Drawing2D.HatchBrush thePicBox = PictureBox1 bmp = New Bitmap(thePicBox.Width, thePicBox.Height) thePicBox.Image = bmp g = Graphics.FromImage(thePicBox.Image) hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), ListBox1.SelectedItem.ToString()), System.Drawing.Drawing2D.HatchStyle) dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB) g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height) dbrush.Dispose() g.Dispose() End Sub Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click Dim kpt As Integer = 1 Dim HSIZE As Integer = 88 Dim VSIZE As Integer = 31 Dim bmp As Bitmap Dim g As Graphics Dim dir As String = "" Dim colB As Color Dim colF As Color Dim hs As System.Drawing.Drawing2D.HatchStyle Dim dbrush As System.Drawing.Drawing2D.HatchBrush Dim i As Integer Dim j As Integer Dim name As String Dim fnameW As String If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then dir = FolderBrowserDialog1.SelectedPath End If thePicBox = PictureBox2 thePicBox.Size = New Size(kpt * HSIZE, kpt * VSIZE) bmp = New Bitmap(kpt * thePicBox.Width, kpt * thePicBox.Height) thePicBox.Image = bmp g = Graphics.FromImage(thePicBox.Image) colB = ColorTranslator.FromHtml("#FFFFFF") colF = ColorTranslator.FromHtml("#000000") For i = 0 To ListBox1.Items.Count - 1 name = ListBox1.Items(i).ToString() hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), name), System.Drawing.Drawing2D.HatchStyle) dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB) g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height) dbrush.Dispose() fnameW = dir & "\png0_" & name & ".png" thePicBox.Image.Save(fnameW, System.Drawing.Imaging.ImageFormat.Png) Next i colB = ColorTranslator.FromHtml("#2F4F4F") colF = ColorTranslator.FromHtml("#FFFFFF") For i = 0 To ListBox1.Items.Count - 1 name = ListBox1.Items(i).ToString() hs = CType([Enum].Parse(GetType(System.Drawing.Drawing2D.HatchStyle), name), System.Drawing.Drawing2D.HatchStyle) dbrush = New System.Drawing.Drawing2D.HatchBrush(hs, colF, colB) g.FillRectangle(dbrush, 0, 0, thePicBox.Width, thePicBox.Height) dbrush.Dispose() fnameW = dir & "\png1_" & name & ".png" thePicBox.Image.Save(fnameW, System.Drawing.Imaging.ImageFormat.Png) Next i g.Dispose() 'htmlファイル出力 Dim sw As System.IO.StreamWriter Dim patname0(ListBox1.Items.Count - 1) As String Dim pngname0(ListBox1.Items.Count - 1) As String Dim patname1(ListBox1.Items.Count - 1) As String Dim pngname1(ListBox1.Items.Count - 1) As String Dim fname As String i = 0 j = 0 For Each fname In System.IO.Directory.GetFiles(dir, "*.png") If fname.IndexOf("png0_") <> -1 Then pngname0(i) = System.IO.Path.GetFileName(fname) patname0(i) = (pngname0(i).Replace(".png", "")).Replace("png0_", "") i = i + 1 End If If fname.IndexOf("png1_") <> -1 Then pngname1(j) = System.IO.Path.GetFileName(fname) patname1(j) = (pngname1(j).Replace(".png", "")).Replace("png1_", "") j = j + 1 End If Next fname fnameW = dir & "\subvbhatch.html" sw = New System.IO.StreamWriter(fnameW, False, System.Text.Encoding.GetEncoding("shift-jis")) sw.WriteLine("") sw.WriteLine("") sw.WriteLine("

VB & C# HatchStyle (模様で塗りつぶす)

") '******************************************************************* sw.WriteLine("

前景色:Black(#000000),背景色:White(#FFFFFF)

") '******************************************************************* sw.WriteLine("") For i = 1 To ListBox1.Items.Count Step 2 sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") Next i sw.WriteLine("
") sw.WriteLine("") sw.WriteLine("") sw.WriteLine(patname0(i - 1)) sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine(patname0(i)) sw.WriteLine("
") '******************************************************************* sw.WriteLine("

前景色:White(#FFFFFF),背景色:DarkSlateGray(#2F4F4F)

") '******************************************************************* sw.WriteLine("") For i = 1 To ListBox1.Items.Count Step 2 sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") Next i sw.WriteLine("
") sw.WriteLine("") sw.WriteLine("") sw.WriteLine(patname1(i - 1)) sw.WriteLine("") sw.WriteLine("") sw.WriteLine("") sw.WriteLine(patname1(i)) sw.WriteLine("
") '******************************************************************* sw.WriteLine("") sw.WriteLine("") sw.Close() '******************************************************************* System.Threading.Thread.Sleep(1000) '1秒待つ System.Diagnostics.Process.Start(fnameW) End Sub End Class