Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim CharArray() As Char = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよSBらりるれろわん がぎぐげござじずぜぞだぢづでどばびぶべぼ".ToCharArray() Dim sz As Integer = 35 Dim px As Integer = 0 Dim py As Integer = 45 Dim but As Button LV = New System.Windows.Forms.ListView Dim lv_clm_ptcode = New System.Windows.Forms.ColumnHeader Dim lv_clm_ptname = New System.Windows.Forms.ColumnHeader Dim lv_clm_dummy = New System.Windows.Forms.ColumnHeader
'フォームのサイズを修正 'Me.ClientSize = New System.Drawing.Size(600, 500)
'50音のボタンを配置 For i As Integer = 0 To CharArray.Length - 1 If (i Mod 5) = 0 Then px += sz py = 50 End If
'文字列が空白の場合は、その該当するボタン分のスペースを空けて次へいく Console.WriteLine(CharArray(i).ToString) If CharArray(i).ToString <> " " Then but = New System.Windows.Forms.Button but.Location = New System.Drawing.Point(px, py) but.Name = String.Format("But{0}", i) but.Size = New System.Drawing.Size(sz, sz) but.TabIndex = 0 but.Text = CharArray(i).ToString() but.UseVisualStyleBackColor = True but.Font = New System.Drawing.Font("MS UI Gothic", 11) AddHandler but.Click, AddressOf but_Click Me.Controls.Add(but) py += sz Else py += sz End If Next txt_Search = New System.Windows.Forms.TextBox txt_Search.Location = New System.Drawing.Point(35, 13) txt_Search.Name = "txt_Search" txt_Search.Size = New System.Drawing.Size(150, 20) txt_Search.Font = New System.Drawing.Font("MS UI Gothic", 11) txt_Search.TabIndex = 0 Me.Controls.Add(txt_Search)
'患者の一覧を表示するリストビューの設定 With LV .Columns.AddRange(New ColumnHeader() {lv_clm_dummy, lv_clm_ptcode, lv_clm_ptname}) .Location = New System.Drawing.Point(35, 240) .Name = "lv_PtIchiran" .Size = New System.Drawing.Size(400, 200) .View = View.Details End With
Me.Controls.Add(LV)
'リストビュー1列目 With lv_clm_dummy .displayindex = 0 .text = "" .width = 0 End With
'リストビュー2列目 With lv_clm_ptcode .displayindex = 1 .text = "患者コード" .width = 115 .textalign = HorizontalAlignment.Center End With
'リストビュー3列目 With lv_clm_ptname .displayindex = 2 .text = "患者氏名" .width = 160 .textalign = HorizontalAlignment.Center End With
End Sub
'50音のボタンをクリックした際のイベント Private Sub but_Click(ByVal sender As Object, ByVal e As EventArgs) 'Sの場合は、スペースを入れる 'Bの場合は、一文字戻る If CType(sender, Control).Text = "S" Then txt_Search.Text = txt_Search.Text + " " ElseIf CType(sender, Control).Text = "B" Then txt_Search.Text = Strings.Left(txt_Search.Text, Len(txt_Search.Text) - 1) Else txt_Search.Text = txt_Search.Text + CType(sender, Control).Text End If
'ListViewのデータをクリア Me.LV.Clear()
Call Disp_PtList(Me.txt_Search.Text) End Sub
'テキストボックスに指定した頭文字を持つ対称の患者の一覧をListViewに表示 Private Sub Disp_PtList(ByVal PtKana As String) Dim i As Integer Dim strsql As String strsql = "SELECT pt_code, pt_name FROM t_patient " Dim Cn As New SqlConnection(My.MySettings.Default.Cn)
Dim cmd As New SqlCommand(strsql, Cn) cmd.Connection.Open()
Dim dr As SqlDataReader = cmd.ExecuteReader
i = 0
While dr.Read Debug.Print(dr("pt_code") & dr("pt_name")) ←ここ
With Me.LV .Items.Add(dr("pt_name")) .Items(i).SubItems.Add(dr("pt_code"))