50分请教下面代码的详细解释,需要每句的详细意思,小弟新学,希望指点,谢谢
#Region "詳細表示 "
'詳細表示ヘッダ表示
Private Sub LogDetailDisp_Header(ByVal l_strLog As String)
Dim l_strKind As String
Dim l_DispLog As String
Dim l_iCnt1, l_iLen As Integer
Try
'ログヘッダ情報の削除
m_strSecNetLog = l_strLog
l_DispLog = l_strLog
'ポートの削除
If g_blPortDel Then
Mid(m_strSecNetLog, 1, 1) = "0 "
End If
'COUNTの削除
Mid(m_strSecNetLog, COUNT, 4) = "0000 "
With l_DispLog
m_aycHeadText(0).Text = .Substring(0, 1)
For l_iCnt1 = 1 To m_aycHeadText.Length - 1
m_aycHeadText(l_iCnt1).Text = .Substring((l_iCnt1 * 2) - 1, 2)
Next
End With
'インデックスの算出
l_iLen = CInt( "&H " & m_strSecNetLog.Substring(LENG - 1, 4))
HScrollBar1.Minimum = 29
HScrollBar1.Maximum = (((l_iLen * 2) + 2) - (m_aycDataText.Length * 2)) - 1
If MenuItemKeepIdx.Checked = True Then
'インデックスを保持する場合
If HScrollBar1.Value > HScrollBar1.Maximum Then
HScrollBar1.Value = HScrollBar1.Maximum
If HScrollBar1.Value Mod 2 = 0 Then
HScrollBar1.Value = HScrollBar1.Value + 1
End If
Else
HScrollBar1.Value = HScrollBar1.Value
If HScrollBar1.Value Mod 2 = 0 Then
HScrollBar1.Value = HScrollBar1.Value + 1
End If
End If
Else
'インデックスを保持しない場合
HScrollBar1.Value = 29
End If
Catch Err As Exception
LogWrite(EN_LOGKIND.EN_ERROR, "File :fmLog.vb Method :LogDetailDisp_Header() Message : " & Err.Message)
End Try
End Sub
[解决办法]
#Region "詳細表示 "
'詳細表示ヘッダ表示-detailed indicate header indication
Private Sub LogDetailDisp_Header(ByVal l_strLog As String)
Dim l_strKind As String
Dim l_DispLog As String
Dim l_iCnt1, l_iLen As Integer
Try
'ログヘッダ情報の削除-delete log header information
m_strSecNetLog = l_strLog
l_DispLog = l_strLog
'ポートの削除-delete of port
If g_blPortDel Then
Mid(m_strSecNetLog, 1, 1) = "0 "
' 把m_strSecNetLog的第一个字符归零
End If
'COUNTの削除-delete COUNT
Mid(m_strSecNetLog, COUNT, 4) = "0000 "
' 把m_strSecNetLog的第COUNT个字符开始的4个字符归零
With l_DispLog
m_aycHeadText(0).Text = .Substring(0, 1)
' 在m_aycHeadText(0)中显示l_DispLog的第一个字符
For l_iCnt1 = 1 To m_aycHeadText.Length - 1
' 在从m_aycHeadText(1)开始的m_aycHeadText数组控件中显示l_DispLog的字符,每个控件中显示两个字符
m_aycHeadText(l_iCnt1).Text = .Substring((l_iCnt1 * 2) - 1, 2)
Next
End With
'インデックスの算出-calculate index
' 计算垂直方向ScrollBar的值域
l_iLen = CInt( "&H " & m_strSecNetLog.Substring(LENG - 1, 4))
HScrollBar1.Minimum = 29
HScrollBar1.Maximum = (((l_iLen * 2) + 2) - (m_aycDataText.Length * 2)) - 1
If MenuItemKeepIdx.Checked = True Then
'インデックスを保持する場合-when the index is kept
' 如果MenuItemKeepIdx选中那么调整垂直方向的ScrollBar,使需要显示的Item出现在可视位置
If HScrollBar1.Value > HScrollBar1.Maximum Then
HScrollBar1.Value = HScrollBar1.Maximum
If HScrollBar1.Value Mod 2 = 0 Then
HScrollBar1.Value = HScrollBar1.Value + 1
End If
Else
HScrollBar1.Value = HScrollBar1.Value ' 这句话不知道什么意思
If HScrollBar1.Value Mod 2 = 0 Then
HScrollBar1.Value = HScrollBar1.Value + 1
End If
End If
Else
'インデックスを保持しない場合-when the index is not kept
' 如果MenuItemKeepIdx未选中那么使垂直方向的ScrollBar停留在最上方
HScrollBar1.Value = 29
End If
Catch Err As Exception
' 错误记录
LogWrite(EN_LOGKIND.EN_ERROR, "File :fmLog.vb Method :LogDetailDisp_Header() Message : " & Err.Message)
End Try
End Sub
#End Region