[環境]
Visual C++ 2005
Windows XP
Microsoft SQL Server
[質問]
Visual C++ 経験二ヶ月のサマーです。データグリッドの選択中のある列の要素
を取り出す方法を教えてください。
>データグリッドの選択中の
選択中とは?
Select状態の行?それともフォーカスがあるセルの行?
参考)
DataGridコントロールでフォーカスのあるセル位置を取得/設定するには?
http://www.atmarkit.co.jp/fdotnet/dotnettips/169dgcurcell/dgcurcell.html
それと、環境の情報で
> Visual C++ 2005
だけでは足りません。
プロジェクトの種類も明記しましょう。
今回ならば
CLR Windows フォームアプリケーション
でしょうか。ここはカナリ重要な情報になります。
サマーです。
プロジェクトはWindowsフォームアプリケーションになります。
選択中とはデータグリッドでフォーカスのあるセルの行のことです。
それではよろしくお願いします。
> それではよろしくお願いします。
> 参考)
> DataGridコントロールでフォーカスのあるセル位置を取得/設定するには?
> http://www.atmarkit.co.jp/fdotnet/dotnettips/169dgcurcell/dgcurcell.html
をご覧になっていないのでしょうか?
CurrentCellから、行番号が取れると思いますけど?
サマーです。すいません。質問のないようを微妙に変えます。
// 選択したセルの行番号取得
int iRow = this->dataGridView5->CurrentCell->RowIndex;
行番号は上のように取得できましたが、
// データセットの所定の行の行番号を取得
int dsRow = this->dsSample->Sub_Table->Rows[iRow][行番号];
データセットから所定の行の行番号の要素を取得しようとしていますが、
'System::Object ^' から 'int' に変換できません
となってしまいます。行番号はint型なんですけど、int型で取得できません。
どうしたらよいでしょうか?
> データセットから所定の行の行番号の要素を取得しようとしていますが、
?
データセットとDataGridViewは1対1で対応していないのでしょうか?
(DataGridViewには行番号列がないとか?)
> 'System::Object ^' から 'int' に変換できません
エラーメッセージそのまま。
int 型の戻り値じゃないからでしょう。普通にキャストすればいいのだっけかな?
>'System::Object ^' から 'int' に変換できません
>となってしまいます。行番号はint型なんですけど、int型で取得できません。
>どうしたらよいでしょうか?
Convertで型変換でもしたら?
// 選択したセルの行番号を取得
int iRow = this->dataGridView5->CurrentCell->RowIndex;
// データセットの所定の行の行番号を取得
int dsRow = Convert::ToInt32(this->dsSample->Sub_Table->Rows[iRow][行番号]);
すいません。Convert::ToInt32でうまくいきました。