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 | この DataGridColumnStyle の DataColumn がまだ設定されていません。 |
解説
列のデータ ソースが 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