次の方法で共有


DataGridColumnStyle.GetColumnValueAtRow メソッド

指定した CurrencyManager から、指定した行の値を取得します。

Protected Friend Overridable Function GetColumnValueAtRow( _
   ByVal source As CurrencyManager, _   ByVal rowNum As Integer _) As Object
[C#]
protected internal virtual object GetColumnValueAtRow(CurrencyManagersource,introwNum);
[C++]
protected public: virtual Object* GetColumnValueAtRow(CurrencyManager* source,introwNum);
[JScript]
protected internal function GetColumnValueAtRow(
   source : CurrencyManager,rowNum : int) : Object;

パラメータ

  • source
    データを格納している CurrencyManager
  • rowNum
    データを格納している行番号。

戻り値

値を格納している Object

例外

例外の種類 条件
ApplicationException この DataGridColumnStyleDataColumn がまだ設定されていません。

解説

列のデータ ソースが DataTable の場合は、 ColumnChanging イベントまたは RowChanging イベントを使用して、列または行の値がいつ変更されたかを確認します。

使用例

[Visual Basic, C#, C++] データ ソースの CurrencyManager を取得し、 GetColumnValueAtRow を使用して行のボリュームを取得する例を次に示します。

 
Public Class Form1
   Inherits Form
   Protected myDataSet As DataSet
    
   Private Sub GetCellValue(sender As Object, e As MouseEventArgs)
      ' Use the HitTest method to get a HitTestInfo object.
      Dim hi As DataGrid.HitTestInfo
      Dim grid As DataGrid = CType(sender, DataGrid)
      hi = grid.HitTest(e.X, e.Y)
      ' Test if the clicked area was a cell.
      If hi.Type = DataGrid.HitTestType.Cell Then
         ' If it's a cell, get the GridTable and CurrencyManager of the
         ' clicked table.         
         Dim dgt As DataGridTableStyle = grid.TableStyles(0)
         Dim myCurrencyManager As CurrencyManager = _
         CType(Me.BindingContext _
         (myDataSet.Tables(dgt.MappingName)), CurrencyManager)
         ' Set the Position to the Row.
         myCurrencyManager.Position = hi.Row
         ' Get the clicked DataGridTextBoxColumn.
         Dim gridCol As MyGridColumnStyle = _
         CType(dgt.GridColumnStyles(hi.Column), MyGridColumnStyle)
         ' Invoke the GetColumnValueAtRow.
         Dim cellValue As Object
         cellValue = gridCol.GetColValueAtRow _
         (myCurrencyManager, hi.Row)
         Console.WriteLine(cellValue)
      End If
   End Sub 
End Class  

Public Class MyGridColumnStyle
Inherits DataGridTextBoxColumn
   public Function GetColValueAtRow _
   (cm As CurrencyManager , rowNum as integer) _
   As Object
   
   return me.GetColumnValueAtRow(cm, rowNum)
   End Function
End Class

[C#] 
private void GetCellValue(object sender, MouseEventArgs e)
{
   // Use the HitTest method to get a HitTestInfo object.
   DataGrid.HitTestInfo hi;
   DataGrid grid = (DataGrid) sender;
   hi=grid.HitTest(e.X, e.Y);
   // Test if the clicked area was a cell.
   if (hi.Type == DataGrid.HitTestType.Cell )
   {
      // If it's a cell, get the GridTable and CurrencyManager of the
      // clicked table.         
      DataGridTableStyle dgt = grid.TableStyles[0];
      CurrencyManager myCurrencyManager = (CurrencyManager)this.BindingContext[myDataSet.Tables[dgt.MappingName]];
      // Set the Position to the Row.
      myCurrencyManager.Position= hi.Row;
      // Get the clicked DataGridTextBoxColumn.
      MyGridColumnStyle gridCol =(MyGridColumnStyle) dgt.GridColumnStyles[hi.Column];
      // Invoke the GetColumnValueAtRow.
      object cellValue;
       
      cellValue = gridCol.GetColValueAtRow(myCurrencyManager, hi.Row);
      Console.WriteLine(cellValue);
   }
 }


}

public class MyGridColumnStyle:DataGridTextBoxColumn{
   public object GetColValueAtRow(CurrencyManager cm, int rowNum){
   
   return this.GetColumnValueAtRow(cm, rowNum);
   }
}


[C++] 
public __gc class MyGridColumnStyle:public DataGridTextBoxColumn{
public:
   Object* GetColValueAtRow(CurrencyManager* cm, int rowNum){

      return this->GetColumnValueAtRow(cm, rowNum);
   }
};

public __gc class Form1: public Form
{
protected:
   DataSet* myDataSet;

private:
   void GetCellValue(Object* sender, MouseEventArgs* e)
   {
      // Use the HitTest method to get a HitTestInfo object.
      DataGrid::HitTestInfo* hi;
      DataGrid* grid = dynamic_cast<DataGrid*> (sender);
      hi=grid->HitTest(e->X, e->Y);
      // Test if the clicked area was a cell.
      if (hi->Type == DataGrid::HitTestType::Cell )
      {
         // If it's a cell, get the GridTable and CurrencyManager of the
         // clicked table.         
         DataGridTableStyle* dgt = grid->TableStyles->Item[0];
         CurrencyManager* myCurrencyManager = 
            dynamic_cast<CurrencyManager*>(this->BindingContext->Item[myDataSet->Tables->Item[dgt->MappingName]]);
         // Set the Position to the Row.
         myCurrencyManager->Position= hi->Row;
         // Get the clicked DataGridTextBoxColumn.
         MyGridColumnStyle* gridCol =dynamic_cast<MyGridColumnStyle*> (dgt->GridColumnStyles->Item[hi->Column]);
         // Invoke the GetColumnValueAtRow.
         Object* cellValue;

         cellValue = gridCol->GetColValueAtRow(myCurrencyManager, hi->Row);
         Console::WriteLine(cellValue);
      }
   }
};

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

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

参照

DataGridColumnStyle クラス | DataGridColumnStyle メンバ | System.Windows.Forms 名前空間 | SetColumnValueAtRow