チェックボックス列があるDevexpressグリッドコントロールがあります。ユーザーが任意の行のチェックボックスの1つをオンまたはオフにした後、チェックボックス値の値を取得しようとしています。私の問題は、常に誤った値を取得していることです。
どうすれば正しい値を取得できますか?どのイベントを使用する必要がありますか?
これが私のコードです、
private void gvBobin_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
setUsageSlipAndProductionEntryRelation();
}
public void setUsageSlipAndProductionEntryRelation() {
for (int i = 0; i < gvBobin.RowCount -1; i++)
{
bool check_ = (bool)gvBobin.GetRowCellValue(i, "CHECK");
if (check_ == true)
{
...............
}
else{
...............
}
}
}
ユーザーの操作にすぐに反応したい場合は、GridView.CellValueChanging
イベントを使用する必要があります。GridView.CellValueChanged
イベントは、ユーザーがセルを離れた後にのみ発生します。どちらの場合も、変更された値を取得するには、CellValueChangedEventArgs
オブジェクトe
とそのValue
プロパティを使用する必要があり、値を取得する前に、列を確認する必要があります。
private void gvBobin_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
{
if (e.Column.FieldName == "CHECK")
{
bool check_ = (bool)e.Value;
if (check_)//There are no need to write check_ == True
//You can use e.RowHandle with gvBobin.GetRowCellValue method to get other row values.
//Example: object value = gvBobin.GetRowCellValue(e.RowHandle,"YourColumnName")
{
//...............
}
else
{
//...............
}
}
}
すべての行を反復処理する場合は、を使用しないでくださいGridView.RowCount
。GridView.DataRowCount
代わりにプロパティを使用してください。
for (int i = 0; i < gvBobin.DataRowCount -1; i++)
//...............
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加