システム開発 備忘録











システム開発備忘録 Visual Basic フォーム関連

*** *** *** *** ***


フォーム

'フォームキープレス時に次のコントロールにフォーカスを移動する
Private Sub Form1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
  On Error Resume Next
  Select Case Asc(e.KeyChar)
    Case System.Windows.Forms.Keys.Enter
      'リッチテキストボックスかデータグリッド以外のとき(リッチテキストなら改行を、データグリッドならセル移動を優先する)
      If Me.ActiveControl.GetType.ToString <> "System.Windows.Forms.RichTextBox" _
      And Me.ActiveControl.GetType.ToString <> "System.Windows.Forms.DataGridView" Then
       '次のコントロールへフォーカス移動
       Call SelectNextControl(Me.ActiveControl, True, True, True, True)
      End If
  End Select
End Sub

マウスポインタ
Form1.Cursor = Cursors.WaitCursor 'マウスポインタ砂時計
Form1.Cursor = Cursors.Default 'マウスポインタ標準

コンボボックス(ComboBox)

配列をコンボボックスのリストにする関数
配列をそのままデータテーブルに格納し、そのデータテーブルを
コンボボックスのデータソースとする。

'*************************************
'配列の内容をコンボボックスのリストに格納する(Valueを配列番号、表示を配列の内容とする)
'引数:objCbo = 対象となるコンボボックス
'引数:objArray()=格納する配列
'戻り値:失敗のときFalse
'*************************************
Public Function F_SetComboListFromArray(ByRef objCbo As ComboBox, ByVal objArray() As Object) As Boolean
    Try
        Dim objDT As New DataTable
        Dim I As Integer

        F_SetComboListFromArray = False

        'テーブルを生成
        objDT.Columns.Add("Index", Type.GetType("System.Int16"))
        objDT.Columns.Add("Disp", Type.GetType("System.String"))

        For I = 0 To UBound(objArray)

            '新しい行を生成
            Dim newRow As DataRow = objDT.NewRow

            newRow("Index") = I
            newRow("Disp") = CStr(objArray(I))

            'DataTableに行を追加
            objDT.Rows.Add(newRow)
        Next

        'コンボのリストを作成する
        objCbo.DataSource = objDT
        objCbo.ValueMember = "Index"
        objCbo.DisplayMember = "Disp"

        F_SetComboListFromArray = True

    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try
End Function



Copyright (C) 2009- station-t.com All Rights Reserved , Link Free