谁帮我分析下,Case 7 '全部的代码怎么实现
- VB code
Public Sub TabStrip1_Click() Dim J As Integer Dim k As Integer Dim I As Integer Dim PO_Z As Long Dim temp As Long Dim AX, AY As Integer Dim P2_buff() As Byte ReDim P2_buff(0 To (XP_W + 1) * (XP_H + 1) * 3 - 1) Dim TEMP_BUFF() As Byte ReDim TEMP_BUFF(0 To (BMP_BUFF_DX)) Dim TEMP_XXS_XBSB As Integer '需显示细胞下标 For I = 0 To MAX_XS_GS - 1 Picture2(I).Visible = False Next If TabStrip1.SelectedItem.Index <> LastIndex Then txtpage.Text = 1 End If LastIndex = TabStrip1.SelectedItem.Index Select Case TabStrip1.SelectedItem.Index Case 1 '中性 If Val(txtpage.Text) > (Val(Text1(1).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 '按图号NucCount将该图的数据放入buff TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(1).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then If I > 0 Then If XB_L_1(TEMP_XXS_XBSB).NucCount <> XB_L_1(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_1(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_1(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_1(TEMP_XXS_XBSB).X, XB_L_1(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 2 '淋巴 If Val(txtpage.Text) > (Val(Text1(2).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(2).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then '按图号NucCount将该图的数据放入buff If I > 0 Then If XB_L_2(TEMP_XXS_XBSB).NucCount <> XB_L_2(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_2(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_2(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_2(TEMP_XXS_XBSB).X, XB_L_2(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 3 '单核 If Val(txtpage.Text) > (Val(Text1(3).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(3).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then '按图号NucCount将该图的数据放入buff If I > 0 Then If XB_L_3(TEMP_XXS_XBSB).NucCount <> XB_L_3(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_3(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_3(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_3(TEMP_XXS_XBSB).X, XB_L_3(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 4 '嗜酸 If Val(txtpage.Text) > (Val(Text1(4).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(4).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then '按图号NucCount将该图的数据放入buff If I > 0 Then If XB_L_4(TEMP_XXS_XBSB).NucCount <> XB_L_4(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_4(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_4(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_4(TEMP_XXS_XBSB).X, XB_L_4(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 5 '嗜碱 If Val(txtpage.Text) > (Val(Text1(5).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(5).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then '按图号NucCount将该图的数据放入buff If I > 0 Then If XB_L_5(TEMP_XXS_XBSB).NucCount <> XB_L_5(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_5(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_5(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_5(TEMP_XXS_XBSB).X, XB_L_5(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 6 '未分类 If Val(txtpage.Text) > (Val(Text1(6).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(0).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then '按图号NucCount将该图的数据放入buff If I > 0 Then If XB_L_0(TEMP_XXS_XBSB).NucCount <> XB_L_0(TEMP_XXS_XBSB - 1).NucCount Then GET_XBMP_buff TEMP_BUFF, XB_L_0(TEMP_XXS_XBSB).NucCount End If End If If I = 0 Then GET_XBMP_buff TEMP_BUFF, XB_L_0(TEMP_XXS_XBSB).NucCount End If BMP_JQ TEMP_BUFF, BMP_WIDTH, BMP_HEIGHT, P2_buff, XP_W + 1, XP_H + 1, XB_L_0(TEMP_XXS_XBSB).X, XB_L_0(TEMP_XXS_XBSB).Y 'XS_XBMP_2 P2_buff, I XS_SB_XBMP P2_buff, I, 2 Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I Case 7 '全部 If Val(txtpage.Text) > (Val(Text1(7).Text) - 1) / MAX_XS_GS + 1 Then txtpage.Text = Val(txtpage.Text) - 1 ’实现将前6种细胞都统计在一起显示,第页只能显示27个细胞 For I = 0 To MAX_XS_GS - 1 TEMP_XXS_XBSB = I + (CInt(txtpage.Text) - 1) * MAX_XS_GS If I < CInt(Text1(6).Text) - (CInt(txtpage.Text) - 1) * MAX_XS_GS Then Picture2(I).Visible = True Else Picture2(I).Visible = False End If Next I End SelectEnd Sub
[解决办法]
你把前面几个 Case n 每一个case后面执行的语句一段段都用sub包好, Case 7的时候就调用这6个sub
[解决办法]
管理菜单右边有个结贴。
[解决办法]
弄成全局变量要考虑效率了