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
。它也会帮助其他人。