2012-02-24 14 views
0

私はユーザーが値を入力し、変更を保存できるグリッドビューを持っています。これまでグリッドに行った変更をユーザーに示し、TFSやその他の比較ツールのような次回のボタンのクリックや前のボタンのクリックの変更を追跡したいと思います。ユーザーが画面上で行った変更を表示するC#?

C#でこの比較機能をどのように達成することができますか? 比較を行い、変更を通過するオープンソースのDLLがありますか?どんな助けも高く評価されます。ありがとうございます。

答えて

0

オープンソースが必要ないとは思いません。あなたはデータの所有者なので、行の比較を自分で行うことを前提としています。

変更したすべての行のインデックス番号を配列/リストに入れて、このリスト内の位置によってどの行が変更されたかを知ることができます。

これは、コードに良く見えます:

class ModifiedRows 
{ 
    int m_position = 0; 
    List<int> m_modifiedRowNumbersList; 
    public ModifiedRows(List<int> modifiedRowNumbersList) 
    { 
     m_modifiedRowNumbersList = modifiedRowNumbersList; 
    } 

    public bool CanMoveToNextIndex { get { return m_position < m_modifiedRowNumbersList.Count; } } 
    public bool CanMoveToPrevIndex { get { return m_position > 0; } } 

    public void MoveToNextIndex() 
    { 
     if (CanMoveToNextIndex) 
     { 
      m_position++; 
     } 
    } 

    public void MoveToPrevIndex() 
    { 
     if (CanMoveToPrevIndex) 
     { 
      m_position--; 
     } 
    } 

    public int CurrentModifiedRowIndex 
    { 
     get 
     { 
      return m_modifiedRowNumbersList[m_position]; 
     } 
    } 
} 
  • あなたは、フォーム上の前/次のボタンを配置し、MoveToNextIndex()/MoveToPrevIndex()を呼び出すために彼らのClickイベントを処理することができます。

  • DataGridViewについては、ModifiedRows.CurrentModifiedRowIndexから取得できるCurrentCellプロパティを設定することができます。

関連する問題