★エラー取得とエラーメッセージ
Try
MsgBox(CDec(TextBox1.Text) / CDec(TextBox2.Text))
Catch ex As InvalidCastException
'数値ではない場合
MsgBox("数値を入力してください。", MsgBoxStyle.Exclamation)
Catch ex As DivideByZeroException
'0で割ろうとした場合
MsgBox("0で割ることはできません。", MsgBoxStyle.Exclamation)
Catch ex As Exception
'その他のエラーが発生した場合
Dim strmsg As String = "その他のエラーが発生しました。" _
& vbCrLf & ex.Message
MessageBox.Show(strmsg, "エラー", MessageBoxButtons.OK, _
MessageBoxIcon.Error)
End Try
★エラーコードを取得するAPI
Declare Function GetLastError Lib "KERNEL32.DLL" () As Integer
Dim DllErrCode As Integer
DllErrCode = GetLastError()
MessageBox.Show("初期情報の書込みに失敗しました。" & vbCrLf & _
"(" & DllErrCode.ToString & ")", "初期設定",
_
MessageBoxButtons.OK, MessageBoxIcon.Error)
★Traceへの出力をコンソールにも出力する
Trace.Listeners.Add(New TextWriterTraceListener(System.Console.Out))
★押されたキーにより処理する
Private Sub CtrlButton_Down(ByVal e As System.Windows.Forms.KeyEventArgs)
Select Case e.KeyCode
Case Keys.PageUp, Keys.Left, Keys.Up
' PgUp, ←, ↑キーが押された時の処理
Case Keys.PageDown, Keys.Right, Keys.Down
' PgDn, →, ↓キーが押された時の処理
Case Keys.Return
' Enterキーが押された時の処理
Case Keys.Delete
' Deleteキーが押された時の処理
Case Keys.A
' A キーが押された時の処理
Case Keys.Q
' Q キーが押された時の処理
Case Else
End Select
End Sub
★PageDownキーを送る
SendKeys.Send("{PageDown}")
★ボタンが押されたらWebを開く
Private Sub Button1_Click _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click
System.Diagnostics.Process.Start("http://www.yahoo.co.jp/")
End Sub
★二重起動防止
If UBound(System.Diagnostics.Process.GetProcessesByName( _
System.Diagnostics.Process.GetCurrentProcess.ProcessName)) > 0 Then
'すでに起動していると判断する
'終了させるコードを書く
End If
★ContextMenuStripの表示位置を算出
----クライアント座標をスクリーン座標に変換する---
Dim ClientPoint As New Point(0, 0)
Dim ScreenPoint As Point
SreenPoint = .PointToScreen(ClientPoint)
Pos.X = ScreenPoint.X + e.x
Pos.Y = ScreenPoint.Y + e.y
----ContextMenuStripの表示位置を指定する------
ContextMenuStrip.Show(Pos.X, Pos.Y)
★文字列操作
・幅指定で右詰め
String.Format("{0, 4}", num) “ 1”
・幅指定で左詰め
String.Format("{0, -4}", num) “1 ”
・0埋め
String.Format("{0:D4}", num)
または
String.Format("{0:0000}", num) “0001”
・幅指定かつ0埋め
String.Format("{0, 8:D4}", num) “ 0001”
--------------------------------------
・指定フォーマット
. Text = keta.ToString("#,##0")
--------------------------------------
・TextBox内の文字を全て選択状態にする
Text1.SelectAll()
★TextBox1で押されたキーを得る
Private Sub TextBox1_KeyDown _
(ByVal sender As Object, _
ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown
Select Case e.KeyCode
Case Keys.PageUp, Keys.Left, Keys.Up
'PgUp33, ←37, ↑38
Case Keys.PageDown, Keys.Right, Keys.Dow
'PgDn34, →39, ↓40
Case Keys.Return
'Return
Case Else
End Select
End Sub
★カーソルの変更
Me.Cursor = System.Windows.Forms.Cursors.WaitCursor
Me.Cursor = System.Windows.Forms.Cursors.Default
★TabControlの背景を描画する
---TabControl1をオーナードローする
SSTab1.DrawMode = TabDrawMode.OwnerDrawFixed
---DrawItemイベントハンドラを追加
AddHandler TabControl1.DrawItem, AddressOf TabControl1_DrawItem
Private Sub TabControl1_DrawItem( _
ByVal sender As Object, ByVal e As DrawItemEventArgs)
'背景の描画等を行う
End Sub
★TextBoxへの入力を受け付けない
Dim KeyAscii As Integer = 0
e.KeyChar = Chr(KeyAscii)
If KeyAscii = 0 Then
e.Handled = True
End If
★「0.5秒間待て」という命令/他のプロセスに制御を渡す
System.Threading.Thread.Sleep(500)
' 他のプロセスに制御を渡す
System.Windows.Forms.Application.DoEvents()
★アプリケーション タイトルの取得
cTitle = My.Application.Info.Title
'拡張子なしのアプリケーション名を取得
ApplicationTitle.Text = _
System.IO.Path.GetFileNameWithoutExtension_
(My.Application.Info.AssemblyName)
★マウスの位置にContextMenuを表示する
If e.button = 2 Then
Dim Pos As Point
'===== クライアント座標をスクリーン座標に変換する =====
Dim ClientPoint As New Point(0, 0)
Dim ScreenPoint As Point
ScreenPoint = .PointToScreen(ClientPoint)
Pos.X = ScreenPoint.X + e.x
Pos.Y = ScreenPoint.Y + e.y
'=================================================
'マウスの位置をセット
ContextMenuStrip.Show(Pos.X, Pos.Y)
End If