システム開発備忘録 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
|