考慮到列類型是字符串類型,一種可能的解決方案是使用NumberFormat
以括號顯示負數。 MSDN FormatNumber
第四個參數UseParensForNegativeNumbers
可以設置爲True,TriState
爲常量。
Dim numberString As String = FormatNumber(number, 0,, TriState.True,)
這應該將消除負號並添加圓括號。下面是一個方法,它接受一個數字字符串並返回相同的數字字符串,除非該字符串的數字值小於零(0),在這種情況下,將返回刪除了負號並添加括號的字符串。如果字符串不是數字,則返回原始字符串。
Private Function GetAccountingNumber(originalString As String) As String
If (Not (String.IsNullOrEmpty(originalString))) Then
Dim number As Integer
If (Integer.TryParse(originalString, number)) Then
If (number < 0) Then
Return FormatNumber(number, 0,, TriState.True,)
Else
Return originalString
End If
Else
Return originalString
End If
Else
Return ""
End If
End Function
鑑於此,一個地方,你可能要設置這種格式是當電網CellValueChanged
事件是第3列解僱這意味着細胞值改變,如果它是一個負數,你會想在用戶離開單元格後格式化該單元格。網格CellValueChanged
事件可能會對此有所幫助...如果單元格值發生了變化,那麼我們要格式化單元格值。由於我們正在更改單元格值,因此在設置值之前,請謹慎關閉此事件以避免重入錯誤。
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
If (e.RowIndex >= 0 And e.ColumnIndex = 3) Then
If (DataGridView1.Rows(e.RowIndex).Cells(3).Value IsNot Nothing) Then
RemoveHandler DataGridView1.CellValueChanged, AddressOf DataGridView1_CellValueChanged
DataGridView1.Rows(e.RowIndex).Cells(3).Value = GetAccountingNumber(DataGridView1.Rows(e.RowIndex).Cells(3).Value.ToString())
AddHandler DataGridView1.CellValueChanged, AddressOf DataGridView1_CellValueChanged
End If
End If
End Sub
我猜這是你在找什麼。希望能幫助到你。
您希望每個負值等於3或每個負值變爲正值(如-3→3和-2→2)? –
否。例如,我的值-3出現在datagridview中,但是,而不是-3,我想使它成爲(3),就像在Excel中的會計格式一樣。 – Diaval
DGV列包括能夠更改數據的顯示格式 – Plutonix