2017-01-09 15 views
0

私はgridcontroldevexpresを使用しています。 からtexteditdatepickercheckboxなどのオブジェクトを埋めたいと思っています。そのためには、DGSearch_CellClickのような関数を作成しなければなりませんでした。値を取得するときに問題があります。texteditdatepickercheckboxなどのオブジェクトに設定することはできません。getrowcellvalueオブジェクトを使用して値を取得しますが、テキストボックスを入力しないでください

以下

私のコードです:

public void DGSearch_CellClick(GridView GView, object[] ConMast, int CurrRow) 
{ 
    try 
    { 
     for (int i = 0; i <= ConMast.Length - 1; i++) 
     { 
      ConMast[i] = GView.GetRowCellValue(CurrRow, GView.Columns[i]).ToString(); 
     } 
    } 
    catch (Exception) { } 
}  

public void Search(int k) 
{ 
    try 
    { 
     // vbcls.DGSearch_CellClick(GViewSearch, new Control[] { TxtMstID, DtDate, TxtJno, DtSite, TxtPartyCode, TxtCompanyCode, TxtTypeCode, TxtArticalCode, TxtJanCharniCode, TxtProcessCode, TxtRgPer, TxtPoPer, TxtManufacturerSize, TxtLsWt, TxtMainCutno, TxtCutNo, TxtRemarks, ChkAutoCut, ChkAutoKno }, k); 

     vbcls.DGSearch_CellClick(GViewSearch, new object[] { TxtMstID.Text, DtDate.EditValue, TxtJno.Text, DtSite.EditValue, TxtPartyCode.Text, TxtCompanyCode.Text, TxtTypeCode.Text, TxtArticalCode.Text, TxtJanCharniCode.Text, TxtProcessCode.Text, TxtRgPer.Text, TxtPoPer.Text, TxtManufacturerSize.Text, TxtLsWt.Text, TxtMainCutno.Text, TxtCutNo.Text, TxtRemarks.Text, ChkAutoCut.Checked, ChkAutoKno.Checked }, k); 
     FillData(); 
     GCSearch.Visible = false; 
     BtnEdit.Focus(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 
+0

'Public void DGSearch_CellClick(GridView GView、refオブジェクト[] ConMast、int CurrRow)'のようにConMastを参照渡ししないでください。 – menssana

答えて

0

あなたは確かに直接グリッド内の値を編集することができますが、私はあなたの最善の策は、あなたがしなければならない場合、データテーブルに、あなたのグリッドデータバインドを作ることであると思うが、好ましくへオブジェクトのコレクション

BindingSourceコンポーネントを追加すると、もう1つのツールが提供され、その使用法が再考されます。たとえば、コレクションをバインド元にバインドし、バインド元をグリッドにバインドすると、グリッド内のフォーカスされた行を変更すると、自動的にbindSource.Currentが更新されます。むしろ、単にあなたのコレクションを反復処理し、グリッド内の項目を検索しようとするよりも、今

gridDgSearch.DataSource = bindDgSearch; 

List<DgSearch> dgSearchList = DgSearchCrud.GetAll(); 
bindDgSearch = dgSearchList; 

:ここ

はそれがどのようなものであるかです。グリッド内のアイテムを更新するのではなく、コレクション内のアイテムを更新してグリッドをリフレッシュします。

また、グリッドイベントの多くでe.RowHandleはこれを意味し、問題の行を示します(イベントargはまだない場合)

(DgSearch)gridDgSearchView.GetRow(e.RowHandle); 

はあなたにその行のオブジェクト全体を与えるだろう。

グリッドの内容がどこから来たのか、何をやりたいのかなどを詳しく説明できれば、このアプローチでどのように扱うことができるのかを絞り込むことができます。

関連する問題