2017-09-29 4 views
0

皆さんは、すべてのリストビューアイテムにフォアカラーを配置する方法を理解できますか?私がやろうとしています何すべてのリストビューアイテムでVB.net Forecolor

は次のとおりです。私はちょうどこの

例のような項目では、いくつかのforecolorsとリストビューを移入します:ここに

> ColumnHeader1   ColumnHeader2  ColumnHeader3 
> Executive(W/Forecolor) texttexttext  texttexttexttext 
> Employee(Plain w/out FC) texttexttext  texttexttexttext 

私のコードです:

Private Sub loadRemarks() 
    Try 
     jonsqlcon.Close() 
     jonsqlcon.ConnectionString = dllConstring 
     jonsqlcon.Open() 

     Dim selStaff As New SqlDataAdapter("SELECT * FROM StaffMember WHERE Staff_IDNo ='" & Notification.lblStaffID.Text & "'", jonsqlcon) 
     Dim setStaff As New DataSet 
     Dim accLvl As String 
     selStaff.Fill(setStaff) 
     accLvl = setStaff.Tables(0).DefaultView.Item(0).Item("AccessLVL").ToString 

     If accLvl = "2" Then 
      ListView1.ForeColor = Color.Aqua 
     End If 

     Dim loadChat As New SqlCommand("SELECT * FROM RemarksConvo WHERE Application_ID = '" & ClientAccountStatusViewer.txtClientID.Text & "' AND Room ='" & lvlStorage.Text & "'", jonsqlcon) 
     reader = loadChat.ExecuteReader 

     ListView1.Items.Clear() 
     Do While reader.Read = True 
      list = ListView1.Items.Add(reader(3).ToString) 
      list.SubItems.Add(reader(4).ToString) 
      list.SubItems.Add(reader(5).ToString) 
      list.SubItems.Add(reader(6).ToString) 
     Loop 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Information) 
    End Try 
End Sub 
+0

これはWinFormsのListViewですか? – Steve

+0

はいこれはWindowsフォームのリストビューです – CallMeJeo

+0

コードの詳細を説明できますか? StaffMemberテーブルとRemarksConvoテーブルの関係は何ですか? RemarksConvoの記録はエグゼクティブと従業員に関連していることをどのように確立していますか? – Steve

答えて

0

まず、コードのSQLインジェクションの問題について心配する必要があります。文字列連結を使用してクエリテキストを構築するのではなく、常にパラメータ化されたテキストを作成します。あなたのコマンドだけでなく、ハッカーがあなたのテキストを改ざんしてあなたのデータベースを混乱させるような方法はありません。

秒。 2つのテーブル間の結合を実行することによって、発言の著者のレベルに関する情報を得ることができます。両方のテーブルのStaff_IDNoフィールドは、備考のレコードを表と結び付けます。

最後に、ListViewItem(ListView.Items.Addから返されたオブジェクト)はForeColorプロパティをサポートしています。リストビューに項目を追加しているときに、色を行単位で簡単に設定できます。

Dim loadChat As New SqlCommand("SELECT r.*, s.AccessLVL FROM RemarksConvo r 
           JOIN StaffMember s ON s.Staff_IDNo = r.Staff_IDNo 
           WHERE r.Application_ID = @appId 
             AND r.Room = @room", jonsqlcon) 
loadChat.Parameters.Add("@appId", SqlDbType.NVarChar).Value = ClientAccountStatusViewer.txtClientID.Text 
loadChat.Parameters.Add("@room", SqlDbType.NVarChar).Value = lvlStorage.Text) 
reader = loadChat.ExecuteReader 
ListView1.Items.Clear() 
    Do While reader.Read 
     list = ListView1.Items.Add(reader(3).ToString) 
     list.ForeColor = If(reader("AccessLvl").ToString = "2", Color.Acqua, SystemColors.WindowText) 
     list.SubItems.Add(reader(4).ToString) 
     list.SubItems.Add(reader(5).ToString) 
     list.SubItems.Add(reader(6).ToString) 
Loop 
関連する問題