2017-10-12 20 views
0
Private Sub GridView1_RowCellStyle(sender As Object, e As 
    RowCellStyleEventArgs) Handles GridView1.RowCellStyle 
    Try 
     If IsDBNull(e.CellValue) Then 
      e.Appearance.BackColor = Color.LightYellow 
     End If 
     Dim selectedCells As GridCell() = GridView1.GetSelectedCells() 
     isRowSelected = GridView1.IsRowSelected(e.RowHandle) 
     For Each Cells In selectedCells 
      If GridView1.GetSelectedCells.Count = 1 Then 
       If IsDBNull(GridView1.GetRowCellValue(Cells.RowHandle, 
        Cells.Column)) Then 
        e.Appearance.BackColor = Color.LightYellow 
       End If 
      Else 
       If isRowSelected Then 
        If IsDBNull(GridView1.GetRowCellValue(Cells.RowHandle, 
         Cells.Column)) Then 
         e.Appearance.BackColor = Color.FromArgb(226, 234, 
          253) 
        End If 
       End If 
      End If 
     Next 
    Catch ex As Exception 
     MessageBox.Show(ex.Message) 
    End Try 
End Sub 

This is my Output Screen Devexpress xtragrid私は選択したいLightyellow'.After」内のデフォルトの色でなければなりませんDevExpress社は「DbNullに」の値を宣言する.I使用していますxtragridセルおよび行の選択

行またはセルを「DbNull」値に設定して、青色を変更します。私は何を間違えたのですか? 色を変更するセルまたは行を選択したい(そのnull値も)

+0

青色に変更する必要はありますか?行全体、またはそのセルだけ? – greenTree

+0

選択した行またはセルを青色に変更します(そのNull値も) –

答えて

0

RowCellStyleイベントハンドラで選択したセルを反復処理するのは意味がありません。単細胞。最終的には、すべての可視セルに対して発生します。

したがって、次のコードは、あなたのタスクを完了するのに十分なようになります。

Private Sub GridView1_RowCellStyle(ByVal sender As Object, ByVal e As RowCellStyleEventArgs) 
    Dim view As GridView = TryCast(sender, GridView) 
    Dim isRowSelected As Boolean = view.IsRowSelected(e.RowHandle) 
    If IsDbNull(e.CellValue) AndAlso (Not isRowSelected) Then 
     e.Appearance.BackColor = Color.Yellow 
    End If 
End Sub 

それはあなたのために動作しますか?

+0

No.i特定のHireDate列セルを選択しましたが、ほとんどのセル値が黄色に変更されました。しかし、青色を変更するには、色。 –

0
Dim state As GridRowCellState 
     state = DirectCast(e.Cell, GridCellInfo).State 
     If (state And GridRowCellState.Selected) = GridRowCellState.Selected Then 
      e.Appearance.BackColor = Color.FromArgb(226, 234, 253) 
     End If 

このコードは、外観色を変更するセルの選択に使用します。 GridRowCellStateには、Grid Controlの外観のカスタマイズの行セルの状態が含まれています。events.Selected Cells is現在処理中の行/セルが選択されることを指定します。 This is My Output

+4

コードのみの回答はお勧めしません。あなたの答えを説明する詳細を追加できますか? – DiskJunky

+1

[よくある回答を書くにはどうすればいいですか](https://stackoverflow.com/help/how-to-answer)をご覧ください。コードのみの回答は、質問の問題の解決方法を説明していないため、お勧めできません。あなたの答えを更新して、これが何をし、どのように問題を解決するのかを説明する必要があります。 – FluffyKitten