Vb.net 检测DataGridView单元格中的符号

Vb.net 检测DataGridView单元格中的符号,vb.net,datagridview,Vb.net,Datagridview,我正试图在我的DataGridView的列(GST)中附加一个百分比符号() 例如如果用户输入18,则应自动转到18% Private Sub DataGridView2_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellEndEdit If DataGridView2.Rows(e.RowIndex).Cells(

我正试图在我的
DataGridView
(GST)中附加一个百分比
符号
()

例如如果用户输入
18
,则应自动转到
18%

Private Sub DataGridView2_CellEndEdit(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView2.CellEndEdit                        
    If DataGridView2.Rows(e.RowIndex).Cells("GST").Value IsNot Nothing Then
    DataGridView2.Rows(e.RowIndex).Cells("GST").Value = 
    DataGridView2.Rows(e.RowIndex).Cells("GST").Value + "%"                    
 End If
End Sub
我是这样做到的。但现在我面临的问题是,每当单元格被编辑时,即使已经添加了一个%符号,也会再添加一个%

因此,如果用户进入单元格并再次离开,它看起来类似于
18%%


无论如何,如果我能够检测到百分比符号,我可以在
If
子句中添加这样的条件。如果%存在,则不会再次添加它。

格式化该单元格的值,而不是设置它。有关详细信息,请参阅事件。

您应该格式化该单元格的值,而不是设置它。请参阅
CellFormatting
事件,并注意
DataGridViewCellFormattingEventArgs
属性

(更具体地说,e.值和e.格式应用)


注意:Jimi在评论部分回答

您应该格式化该单元格的值,而不是设置它。查看事件,并注意属性(更具体地说是
e.Value
e.FormattingApplied
)。您的方法是错误的(请参见@Jimi),但是
DataGridView2.Rows(e.RowIndex).Cells(“GST”).Value.Trim(“%.”.ToArray())+“%”
@Jimi我使用了您提到的方法,是的。如果你能把它正确地放在答案部分,这样我就可以把它标记为
answer
。它也会帮助其他人。