次の方法で共有


CurrencyManager.ItemChanged イベント

現在の項目が変更されている場合に発生します。

Public Event ItemChanged As ItemChangedEventHandler
[C#]
public event ItemChangedEventHandler ItemChanged;
[C++]
public: __event ItemChangedEventHandler* ItemChanged;

[JScript] JScript では、このクラスで定義されているイベントを処理できます。ただし、独自に定義することはできません。

イベント データ

イベント ハンドラが、このイベントに関連するデータを含む、ItemChangedEventArgs 型の引数を受け取りました。次の ItemChangedEventArgs プロパティには、このイベントの固有の情報が記載されます。

プロパティ 説明
Index リスト内で変更されている項目の位置を示します。

解説

ItemChanged イベントは、ユーザーが ResumeBinding メソッドまたは SuspendBinding メソッドを呼び出すと発生します。

ItemChanged イベントは、項目がなんらかの形で変更されている場合にだけ発生します。たとえば、項目の値が "10" から "42" に変更されると、このイベントは発生します。このイベントは、項目が新しい項目に変更されていた場合に発生する PositionChanged イベントとは異なります。

このイベントは、基になるデータが変更されても発生します。たとえば、 DataRowView の値を変更すると、 ItemChanged イベントが発生します。

メモ    CurrencyManager を使用する独自のコントロールを作成している場合は、 ItemChanged イベントではなく、 IBindingList クラスの ListChanged イベントを使用します。 ListChangedEventArgs オブジェクトの ListChangedType プロパティを使用すると、発生したアクションの種類を判断できます。

使用例

ItemChanged イベントと PositionChanged イベントのイベント ハンドラを追加する例を次に示します。

 
Private Sub BindControl(myTable As DataTable)
    ' Bind A TextBox control to a DataTable column in a DataSet.
    textBox1.DataBindings.Add("Text", myTable, "CompanyName")
    ' Specify the CurrencyManager for the DataTable.
    myCurrencyManager = CType(Me.BindingContext(myTable, ""), CurrencyManager)
    ' Add event handlers.
    AddHandler myCurrencyManager.ItemChanged, AddressOf CurrencyManager_ItemChanged
    AddHandler myCurrencyManager.PositionChanged, AddressOf CurrencyManager_PositionChanged
    ' Set the initial Position of the control.
    myCurrencyManager.Position = 0
End Sub 'BindControl


Private Sub CurrencyManager_PositionChanged(sender As Object, e As System.EventArgs)
    Dim myCurrencyManager As CurrencyManager = CType(sender, CurrencyManager)
    Console.WriteLine(("Position Changed " & myCurrencyManager.Position))
End Sub 'CurrencyManager_PositionChanged


Private Sub CurrencyManager_ItemChanged(sender As Object, e As System.Windows.Forms.ItemChangedEventArgs)
    Dim myCurrencyManager As CurrencyManager = CType(sender, CurrencyManager)
    Console.WriteLine(("Item Changed " & myCurrencyManager.Position))
End Sub 'CurrencyManager_ItemChanged

[C#] 
private void BindControl(DataTable myTable)
{
    // Bind A TextBox control to a DataTable column in a DataSet.
    textBox1.DataBindings.Add("Text", myTable, "CompanyName");
    // Specify the CurrencyManager for the DataTable.
    myCurrencyManager = (CurrencyManager)this.BindingContext[myTable, ""];
    // Add event handlers.
    myCurrencyManager.ItemChanged+=
    new ItemChangedEventHandler(CurrencyManager_ItemChanged);
    myCurrencyManager.PositionChanged+= 
    new EventHandler(CurrencyManager_PositionChanged);
    // Set the initial Position of the control.
    myCurrencyManager.Position = 0;
}
 
private void CurrencyManager_PositionChanged(object sender, System.EventArgs e){
    CurrencyManager myCurrencyManager = (CurrencyManager) sender;
    Console.WriteLine("Position Changed " + myCurrencyManager.Position);
}

private void CurrencyManager_ItemChanged(object sender, System.Windows.Forms.ItemChangedEventArgs e){
    CurrencyManager myCurrencyManager = (CurrencyManager) sender;
    Console.WriteLine("Item Changed " + myCurrencyManager.Position);
}

[C++] 
private:
    void BindControl(DataTable* myTable)
    {
        // Bind A TextBox control to a DataTable column in a DataSet.
        textBox1->DataBindings->Add(S"Text", myTable, S"CompanyName");
        // Specify the CurrencyManager for the DataTable.
        myCurrencyManager = dynamic_cast<CurrencyManager*>(this->BindingContext->get_Item(myTable, S""));
        // Add event handlers.
        myCurrencyManager->ItemChanged+=
            new ItemChangedEventHandler(this, &Form1::CurrencyManager_ItemChanged);
        myCurrencyManager->PositionChanged+= 
            new EventHandler(this, &Form1::CurrencyManager_PositionChanged);
        // Set the initial Position of the control.
        myCurrencyManager->Position = 0;
    }
 
    void CurrencyManager_PositionChanged(Object* sender, System::EventArgs* /*e*/){
        CurrencyManager* myCurrencyManager = dynamic_cast<CurrencyManager*> (sender);
        Console::WriteLine(S"Position Changed {0}", __box(myCurrencyManager->Position));
    }

    void CurrencyManager_ItemChanged(Object* sender, System::Windows::Forms::ItemChangedEventArgs* /*e*/){
        CurrencyManager* myCurrencyManager = dynamic_cast<CurrencyManager*> (sender);
        Console::WriteLine(S"Item Changed {0}", __box(myCurrencyManager->Position));
    }

[JScript] 
private function BindControl(myTable : DataTable)
{
    // Bind A TextBox control to a DataTable column in a DataSet.
    textBox1.DataBindings.Add("Text", myTable, "CompanyName");
    // Specify the CurrencyManager for the DataTable.
    myCurrencyManager = CurrencyManager(this.BindingContext[myTable, ""]);
    // Add event handlers.
    myCurrencyManager.add_ItemChanged(CurrencyManager_ItemChanged);
    myCurrencyManager.add_PositionChanged(CurrencyManager_PositionChanged);
    // Set the initial Position of the control.
    myCurrencyManager.Position = 0;
}
 
private function CurrencyManager_PositionChanged(sender, e : System.EventArgs){
    var myCurrencyManager : CurrencyManager = CurrencyManager(sender);
    Console.WriteLine("Position Changed " + myCurrencyManager.Position);
}

private function CurrencyManager_ItemChanged(sender, e : System.Windows.Forms.ItemChangedEventArgs){
    var myCurrencyManager : CurrencyManager = CurrencyManager(sender);
    Console.WriteLine("Item Changed " + myCurrencyManager.Position);
}

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

CurrencyManager クラス | CurrencyManager メンバ | System.Windows.Forms 名前空間 | PositionChanged