次の方法で共有


CurrencyManager クラス

Binding オブジェクトのリストを管理します。

この型のすべてのメンバの一覧については、CurrencyManager メンバ を参照してください。

System.Object
   System.Windows.Forms.BindingManagerBase
      System.Windows.Forms.CurrencyManager

Public Class CurrencyManager
   Inherits BindingManagerBase
[C#]
public class CurrencyManager : BindingManagerBase
[C++]
public __gc class CurrencyManager : public BindingManagerBase
[JScript]
public class CurrencyManager extends BindingManagerBase

スレッドセーフ

この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

解説

CurrencyManager は、 BindingManagerBase クラスから派生します。 CurrencyManager または PropertyManager を返すには、 BindingContext を使用します。返される実際のオブジェクトは、 BindingContextItem プロパティに渡されたデータ ソースおよびデータ メンバによって異なります。データ ソースが単一のプロパティだけを返すことができるオブジェクトであり、オブジェクトのリストではない場合、データ ソースの種類は PropertyManager になります。たとえば、データ ソースとして TextBox を指定すると、 PropertyManager が返されます。一方、データ ソースが IListIListSource 、または IBindingList を実装するオブジェクトの場合は、 CurrencyManager が返されます。

Current プロパティは、基になるリストにある現在の項目を返します。現在の項目を変更するには、 Position プロパティを新しい値に設定します。この値は、0 より大きい値で、 Count プロパティの値より小さい値である必要があります。

基になるデータ ソースで IBindingList インターフェイスを実装し、 AllowNew プロパティを true に設定すると、 AddNew メソッドを使用できます。

使用例

TextBox コントロールを DataTable の列にバインドし、このバインディングのために CurrencyManager を取得してその位置を設定する例を次に示します。

 
' Place the next line into the Declarations section of the form.
 Private myCurrencyManager As CurrencyManager
 
 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)
    ' Set the initial Position of the control.
    myCurrencyManager.Position = 0
 End Sub
 
 Private Sub MoveNext(myCurrencyManager As CurrencyManager)
    If myCurrencyManager.Position = myCurrencyManager.Count - 1 Then 
       MessageBox.Show("You're at end of the records")
    Else
       myCurrencyManager.Position += 1
    End If
 End Sub
 
 Private Sub MoveFirst(myCurrencyManager As CurrencyManager)
    myCurrencyManager.Position = 0
 End Sub
 
 Private Sub MovePrevious(myCurrencyManager As CurrencyManager)
    If myCurrencyManager.Position = 0 Then
       MessageBox.Show("You're at the beginning of the records.")
    Else
       myCurrencyManager.Position -= 1
    End if
 End Sub
 
 Private Sub MoveLast(myCurrencyManager As CurrencyManager)
    myCurrencyManager.Position = myCurrencyManager.Count - 1
 End Sub


[C#] 
private CurrencyManager myCurrencyManager;
 
 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];
    // Set the initial Position of the control.
    myCurrencyManager.Position = 0;
 }
 
 private void MoveNext(CurrencyManager myCurrencyManager){
    if (myCurrencyManager.Position == myCurrencyManager.Count - 1){
       MessageBox.Show("You're at end of the records");
    }
    else{
      myCurrencyManager.Position += 1;
    }
 }
 
 private void MoveFirst(CurrencyManager myCurrencyManager){
    myCurrencyManager.Position = 0;
 }
 
 private void MovePrevious(CurrencyManager myCurrencyManager ){
    if(myCurrencyManager.Position == 0) {
       MessageBox.Show("You're at the beginning of the records.");
    }   
    else{
       myCurrencyManager.Position -= 1;
    }
 }
 
 private void MoveLast(CurrencyManager myCurrencyManager){
    myCurrencyManager.Position = myCurrencyManager.Count - 1;
 }


[C++] 
private:
   CurrencyManager __gc *myCurrencyManager;

   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.
      this->myCurrencyManager = dynamic_cast<CurrencyManager *>(this->BindingContext->Item[myTable]);
      // Set the initial Position of the control.
      this->myCurrencyManager->Position = 0;
   };

   void MoveNext(CurrencyManager *myCurrencyManager) {
      if (myCurrencyManager->Position == myCurrencyManager->Count - 1) {
         MessageBox::Show(S"You're at end of the records");
      } else {
         myCurrencyManager->Position += 1;
        }
   };

   void MoveFirst(CurrencyManager *myCurrencyManager) {
      myCurrencyManager->Position = 0;
   };

   void MovePrevious(CurrencyManager *myCurrencyManager ) {
      if (myCurrencyManager->Position == 0) {
         MessageBox::Show(S"You're at the beginning of the records.");
      } else {
         myCurrencyManager->Position -= 1;
        }
   };

   void MoveLast(CurrencyManager *myCurrencyManager) {
      myCurrencyManager->Position = myCurrencyManager->Count - 1;
   };


[JScript] 
private var myCurrencyManager : CurrencyManager;

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]);
   // Set the initial Position of the control.
   myCurrencyManager.Position = 0;
}

private function MoveNext(myCurrencyManager : CurrencyManager){
   if (myCurrencyManager.Position == myCurrencyManager.Count - 1){
      MessageBox.Show("You're at end of the records");
   }
   else{
     myCurrencyManager.Position += 1;
   }
}

private function MoveFirst(myCurrencyManager : CurrencyManager){
   myCurrencyManager.Position = 0;
}

private function MovePrevious(myCurrencyManager : CurrencyManager){
   if(myCurrencyManager.Position == 0) {
      MessageBox.Show("You're at the beginning of the records.");
   }   
   else{
      myCurrencyManager.Position -= 1;
   }
}

private function MoveLast(myCurrencyManager : CurrencyManager){
   myCurrencyManager.Position = myCurrencyManager.Count - 1;
}

必要条件

名前空間: System.Windows.Forms

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

アセンブリ: System.Windows.Forms (System.Windows.Forms.dll 内)

参照

CurrencyManager メンバ | System.Windows.Forms 名前空間 | BindingsCollection | BindingContext | Binding