【发布时间】:2014-03-31 04:06:54
【问题描述】:
在我的应用程序中,我有一个包含 5 个不同列表视图控件的表单。我试图在这里实现两件事,但我有点坚持......
1. 有没有办法让我在单击 Listview1 的第 3 行(例如)时,为所有 listview 控件选择第 3 行?我在 Listview1 的 _SelectedIndexChanged 事件中设置了以下代码,它可以正常工作,但是,我想这样做,所以如果用户点击任何 listview 的 row3,它会将所有 listview 控件更改为第 3 行。
Private Sub lsvRegisters_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lsvRegisters.SelectedIndexChanged
Try
If Not lsvRegisters.SelectedItems.Count = 0 Then
Dim index As Integer = lsvRegisters.SelectedIndices(0)
If lsvRegister_Hardware.Items.Count > 0 Then lsvRegister_Hardware.Items(index).Selected = True
If lsvRegister_Software.Items.Count > 0 Then lsvRegister_Software.Items(index).Selected = True
If lsvRegister_Processes.Items.Count > 0 Then lsvRegister_Processes.Items(index).Selected = True
If lsvRegister_System.Items.Count > 0 Then lsvRegister_System.Items(index).Selected = True
If lsvRegister_Misc.Items.Count > 0 Then lsvRegister_Misc.Items(index).Selected = True
End If
Catch ex As Exception
CreateLog("Module: lsvRegisters_SelectedIndexChanged()" & vbNewLine & "Exception Error: " & ex.Message)
MsgBox("Exception Error: " & ex.Message, MsgBoxStyle.Critical, "Module: lsvRegisters_SelectedIndexChanged()")
End Try
End Sub
其次:
2. 有没有办法让所有列表视图控件都将高亮栏作为活动颜色?目前它只显示带有蓝色突出显示栏的焦点列表视图控件,其他显示为暗灰色。我想(如果可能的话)让所有列表视图控件显示为蓝色,无论它是否有焦点。
任何帮助表示赞赏。 谢谢
更新 列表视图控件的多项选择现在可以按要求工作,但是,一旦列表视图失去焦点,它只会使第一个单元格突出显示,如下所示:
我用于设置列表视图控件的代码来自数据集。我已经演示了第一个列表视图,但是它们都是一样的。
Try
QueryString = "SELECT * FROM Registers WHERE StoreID = '" & _StoreCode & "'"
Dim ExQry As New MySqlCommand(QueryString, MySQLConn)
Dim da As New MySqlDataAdapter(ExQry)
da.Fill(dsStoreDetail, "StoreDetail")
Dim tempDT As DataTable = dsStoreDetail.Tables("StoreDetail")
If dsStoreDetail.Tables.Count > 0 And dsStoreDetail.Tables(0).Rows.Count > 0 Then
For x = 0 To (dsStoreDetail.Tables(0).Rows.Count - 1)
Dim lvi_RegistersItem As ListViewItem = lsvRegisters.Items.Add(tempDT.Rows(x)("Online").ToString)
lvi_RegistersItem.SubItems.Add(tempDT.Rows(x)("Lane").ToString)
lvi_RegistersItem.SubItems.Add(tempDT.Rows(x)("Host_Name").ToString)
lvi_RegistersItem.SubItems.Add(tempDT.Rows(x)("Reg_Type").ToString)
lvi_RegistersItem.SubItems.Add(tempDT.Rows(x)("Operator").ToString)
lvi_RegistersItem.SubItems.Add(tempDT.Rows(x)("Register_Locked").ToString)
Next
Else
lblEmptyString.Visible = True
End If
dsStoreDetail.Clear()
tempDT = Nothing
Catch ex As Exception
CreateLog("Module: LoadStoreData()" & vbNewLine & "Exception Error: " & ex.Message)
MsgBox("Exception Error: " & ex.Message, MsgBoxStyle.Critical, "Module: LoadStoreData()")
lblEmptyString.Visible = True
End Try
我已将所有列表视图控件设置为 FullRowSelect = True 但仅在设计时 - 不确定这是否重要。
【问题讨论】:
-
我建议您一次只提出一个问题。这样你就更有可能得到答案。因为知道一个答案的人可能不知道另一个答案。而且由于他们不太可能只用一个答案就得到“接受的回应”,所以他们什么也没说。