• <menu id="w2i4a"></menu>
  • logo DevExpress WinForms使用教程

    文檔首頁>>DevExpress WinForms使用教程>>DevExpress Winforms使用技巧教程:如何突出顯示W(wǎng)inForms網(wǎng)格控件行

    DevExpress Winforms使用技巧教程:如何突出顯示W(wǎng)inForms網(wǎng)格控件行


    下載DevExpress v20.1完整版    DevExpress v20.1漢化資源獲取

    DevExpress Winforms Controls 內(nèi)置140多個UI控件和庫,完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。想要體驗?點擊下載>>

    遇到的問題

    在VB Windows Form上工作,有一下VB代碼,該代碼應(yīng)該為帶有NextCalibrationDate <= to today's date的行提供紅色背景(在此情況下只有兩行),但是沒有實現(xiàn)。當(dāng)調(diào)試應(yīng)用程序時,似乎代碼正在運行,但兩行的顏色未更改為紅色。目前想知道是否是因為在這些單元格中設(shè)置了日期的方式。

    Private Sub GridView1_RowStyle(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles GridView1.RowStyle
    
    Dim nextCalibDate As Date
    Dim I As Integer
    Dim DataRowCount As Integer = GridView1.DataRowCount
    
    Dim View As GridView = sender
    For I = 0 To DataRowCount - 1
    If IsDBNull(GridView1.GetRowCellValue(e.RowHandle, colNextCalibrationDt)) Then
    'Nothing
    Else
    nextCalibDate = GridView1.GetRowCellValue(e.RowHandle, colNextCalibrationDt)
    
    If nextCalibDate <= Today.Date Then
    If (e.RowHandle >= 0) Then
    e.Appearance.BackColor = Color.Red
    End If
    End If
    End If
    Next
    End Sub

    僅供參考,這是用來設(shè)置NextCalibrationDate的代碼:

    Dim DataRowCount As Integer = GridView1.DataRowCount
    DataRowCount -= 1
    Dim DateCalibrated As Date = GridView1.GetRowCellValue(DataRowCount, colDateCalibrated)
    Dim NextCalibrationDt As String
    
    'Set NextCalibrationDt
    Select Case CalibInterval
    Case "D"
    NextCalibrationDt = DateAdd(DateInterval.Day, 1, DateCalibrated)
    Case "W"
    NextCalibrationDt = DateAdd(DateInterval.Day, 7, DateCalibrated)
    Case "M"
    NextCalibrationDt = DateAdd(DateInterval.Month, 1, DateCalibrated)
    Case "6mos"
    NextCalibrationDt = DateAdd(DateInterval.Month, 6, DateCalibrated)
    Case "Y"
    NextCalibrationDt = DateAdd(DateInterval.Year, 1, DateCalibrated)
    Case "B"
    NextCalibrationDt = DateAdd(DateInterval.Year, 2, DateCalibrated)
    Case "36mos"
    NextCalibrationDt = DateAdd(DateInterval.Year, 3, DateCalibrated)
    Case "N"
    NextCalibrationDt = "NULL"
    Case "Calibration Not Required"
    NextCalibrationDt = "NULL"
    Case Else
    NextCalibrationDt = "NULL"
    End Select
    
    If NextCalibrationDt <> "NULL" Then
    NextCalibrationDt = "'" & NextCalibrationDt & "'"
    End If
    
    Dim sqlString As String = "UPDATE [ToolingCalibration].[dbo].[tblToolCalibration] SET LastCalibrationDt = '" & DateCalibrated & "', NextCalibrationDt = " & NextCalibrationDt & " where RecordID = '" & ToolIdToEdit & "'"
    Dim toolCmd As New SqlCommand(sqlString, connCalibrationRecord)
    toolCmd.Connection.Open()
    toolCmd.ExecuteNonQuery()
    toolCmd.Connection.Close()

    DevExpress Winforms使用技巧教程:如何突出顯示W(wǎng)inForms網(wǎng)格控件行
    DevExpress Winforms使用技巧教程:如何突出顯示W(wǎng)inForms網(wǎng)格控件行
    解決方案

    為了確保滿足您的條件,請在更改e.Appearance.BackColor屬性的行中插入一個斷點。在特定情況下,RowStyle事件提供的外觀設(shè)置的優(yōu)先級低于其他外觀設(shè)置,啟用e.HighPriority選項確保外觀設(shè)置具有最高優(yōu)先級。此外,由于每個可見行都會引發(fā)RowStyle事件,因此您無需循環(huán)執(zhí)行代碼。

    在代碼結(jié)尾處設(shè)置e.HighPriority = True可以解決問題。

    Private Sub GridView1_RowStyle(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs) Handles GridView1.RowStyle
    
    Dim nextCalibDate As Date
    Dim I As Integer
    Dim View As GridView = sender
    
    If IsDBNull(GridView1.GetRowCellValue(e.RowHandle, colNextCalibrationDt)) Then
    'Nothing
    Else
    nextCalibDate = GridView1.GetRowCellValue(e.RowHandle, colNextCalibrationDt)
    
    If nextCalibDate <= Today.Date Then
    If (e.RowHandle >= 0) Then
    e.Appearance.BackColor = Color.Red
    End If
    e.HighPriority = True 'override any other formatting
    End If
    End If
    End Sub


    DevExpress技術(shù)交流群2:775869749      歡迎一起進(jìn)群討論

    獲取第一手DevExpress控件資訊,請上DevExpress中文網(wǎng)!

    慧都高端UI界面開發(fā)
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();