CSVファイルを書き込む
実行ファイルのフォルダの「CSV」フォルダ内にCSVファイルを書き込みます。
Imports System.IO Imports Microsoft.VisualBasic.FileIO Public Sub setCsvFile( fp As String) Using sw As New StreamWriter(fp, False, System.Text.Encoding.GetEncoding("Shift_JIS")) For Each _item As clsAssyItem In _items sw.Write(_item.id.ToString & ",") sw.Write(_item.flag & ",") sw.Write("""" & _item.name & """,") sw.Write(_item.number.ToString & vbCrLf) Next End Using End Sub
呼び出し側
' アイテムクラス Public Class clsItems Public id As Double Public flag As Boolean Public name As String Public number As Integer End Class ' アイテムリスト Public _items As New List(Of clsItems) Dim _item As New clsItems _item.id = 1 _item.flag = True _item.name = "Name1" _item.number = 123 _items.Add(_item) Dim fp As String = Path.Combine(Application.StartupPath, "csv") fp = Path.Combine(fp, "file1.csv") setCsvFile( fp )
CSVファイルを読み込む
実行ファイルのフォルダの「CSV」フォルダ内のCSVファイルを読み込みます。
Imports System.IO Imports Microsoft.VisualBasic.FileIO Public Sub getCsvFile( fp As String) If File.Exists(fp) Then Using parser As New TextFieldParser(fp, System.Text.Encoding.GetEncoding("Shift_JIS")) parser.TextFieldType = FieldType.Delimited parser.SetDelimiters(",") Dim _row As String() While Not parser.EndOfData _row = parser.ReadFields() Dim _item As New clsItems _item.id = CDbl(_row(0)) _item.flag = CBool(_row(1)) _item.name = _row(2) _item.number = CInt(_row(3)) _items.Add(_item) End While End Using End If End Sub
呼び出し側
' アイテムクラス Public Class clsItems Public id As Double Public flag As Boolean Public name As String Public number As Integer End Class ' アイテムリスト Public _items As New List(Of clsItems) Dim fp As String = Path.Combine(Application.StartupPath, "csv") fp = Path.Combine(fp, "file1.csv") getCsvFile( fp )
このままでは、正常動作はしませんが、健忘録程度に記述します。
Panelコントロールを単色で塗りつぶす
グラフィックでカーソルなどを独自に描画した時に余分な線などが残ってしまった時にパネル全体を単色で塗りつぶします。
Dim g As Graphics = Panel1.CreateGraphics g.FillRectangle(Brushes.Gray, 0, 0, Panel1.Width, Panel1.Height)
これでPanelは綺麗になります。
ファイル名に使用できない文字の置き換え
ファイル名に使用できない文字を置き換えるメソッド
Imports System.IO Public Function ReplaceInvalidChar(ByVal _str As String, Optional ByVal chrReplace As Char = "_"c) As String Dim invalidChars() As Char = Path.GetInvalidFileNameChars() For Each _char As Char In invalidChars _str = _str.Replace(_char, chrReplace) Next ReplaceInvalidChar = _str End Function
使用方法は、
Dim fp As String = ReplaceInvalidChar(_str) & ".csv"
禁止文字が”_”に置き換わります
ListView 更新のチラツキを抑制する
ListViewを更新する時のチラツキが気になる
Imports System.Reflection Dim RedrawFlags As BindingFlags = BindingFlags.NonPublic Or BindingFlags.Instance Or BindingFlags.SetProperty ListView1.GetType().InvokeMember("DoubleBuffered", RedrawFlags, Nothing, ListView1, New Object() {True}) ListView1.View = View.Details
これでチラツキが抑制されます。
テレワークのお昼に玉子丼を作ります
ごはん+玉ねぎ+溶き卵
水(大さじ3)
めんつゆ(大さじ2)
砂糖(小さじ2)
この配分が非常に美味です。
システムの起動時にSHIFTキーを判定する
システムの起動時にSHIFTキーが押下された状態の時に特別な処理をする
(フォームのLoad/Shownイベント)
If (Control.ModifierKeys And Keys.Shift) = Keys.Shift Then ' SHIFTキーが押下されている場合の処理 End If
ControlキーもAltキーも同じように判定できるので、状態を戻したいとき
などに使用すると便利かな。