一見単純な問題を解決するための私の話を辛抱強く読んでください。
私の主な目的は、データグリッドビューで桁区切りを行うことです。つまり、12345 と入力すると 12,345 になります。他のタスクとの違いは、ユーザーがセルを離れるときではなく、入力しているときにこれを行うことです。
セルに数字を追加するたびに発生する datagridview イベントのメソッドを見つけることができませんでした。
多くの調査の後、私はこのコードに出くわしましたが、いくつかの問題があります:
myGrid:
ItemName Quantity FeeColumn
Private void grdTrading_CurrentCellDirtyStateChanged(object sender, System.EventArgs e)
{
If (grdTrading.IsCurrentCellDirty )
{
grdTrading.CommitEdit(DataGridViewDataErrorContexts.Commit)
}
}
Private void grdTrading_CellValueChanged(object sender , System.Windows.FormsDataGridViewCellEventArgs e)
{
grdTrading.Columns[ColumnFee.Name].DefaultCellStyle.Format=(Decimal.Parse(grdTrading.Rows[0].Cells[ColumnFee.Name].Value.Tostring())).Tostring("#,##0")
}
今何が悪いのですか?
最初に行って
grdTrading_CurrentCellDirtyStateChanged
commitedit を実行すると、ユーザーがセルを変更している間、セルにデータを入れてデータを削除することはできなくなりますデータがあり、正常に実行
cellValueChanged
され、料金の列に任意の数字を追加すると実行されます。つまり、1、12、123、1234、12345 ですが、入力時にグリッドにコンマがありません。
私は本当にこの問題にうんざりしています.どんな助けや他の解決策も歓迎します.