- PR -

VC++データグリッドビュー

1
投稿者投稿内容
ban
常連さん
会議室デビュー日: 2009/02/06
投稿数: 26
投稿日時: 2009-02-12 16:20
textBoxの数値を、listBoxに入れる時
listBox->Items->Add( ○○ );
と書いていたのですが、listBoxをデータグリッドビューにしたら
DataGridView->Items->Add( ○○ );
ではItemsは、DataGridViewのメンバではないと出ます。

参考にしている参考書(一目でわかる Visual C++2008アプリケーション開発入門)では

private: System::Void buttonAdd_Click(System:bject^ sender, System::EventArgs^ e) {
// 品名、分類、金額を取得する
String^ name = textName->Text;
String^ kind = comboKind->Text;
int money = int:arse( textMoney->Text );
// 日付を取得する
DateTime date = dateCalendar->Value;
// 明細リストに追加
this->report->Add( date, name, kind, money );
// リストボックスを更新
UpdateListMoney();
}

となっているのですが、なぜthis->になるのか理解できません…
this->report->Add( ○○ );
DataGridView->report->Add( ○○ );
など試してみたのですが、どうしてもエラーになります。
どうしてなんでしょう?
どなたか、分かる方教えてください。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-02-12 22:13
引用:

banさんの書き込み (2009-02-12 16:20) より:

となっているのですが、なぜthis->になるのか理解できません…
this->report->Add( ○○ );
DataGridView->report->Add( ○○ );
など試してみたのですが、どうしてもエラーになります。
どうしてなんでしょう?
どなたか、分かる方教えてください。


これは、「this というのがなんなのかわからない」ということでしょうか?
それとも、「なぜここで this が使われるのか、わからない」ということでしょうか?
あるいは、他のことでしょうか?

ひとつ目なら、this は、buttonAdd_Click メソッドが書かれているクラスのインスタンスを表しています。詳しいことは、「オブジェクト指向プログラミング」を学んでください。

二つ目なら、report がなんなのかわかりませんが、それを指すために使用しているのでしょう。
ban
常連さん
会議室デビュー日: 2009/02/06
投稿数: 26
投稿日時: 2009-02-13 09:18
thisはDataGridViewをさしているように見えるのですが、
buttonAdd_Click関数の中でなぜDataGridViewをthisでさせるのか?
ということです。
this=自分自身だから、buttonAdd_Click関数の中でthisと言えるのは
buttonAddじゃないかな?と…
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-02-13 10:01
> DataGridView->Items->Add( ○○ );
> ではItemsは、DataGridViewのメンバではないと出ます。

ListBox には Items メンバがあるから使えます。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.listbox_members(VS.80).aspx

DataGridView には Items メンバが無いから使えません。
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.datagridview_members(VS.80).aspx

> となっているのですが、なぜthis->になるのか理解できません…
> this->report->Add( ○○ );
> DataGridView->report->Add( ○○ );
> など試してみたのですが、どうしてもエラーになります。
> どうしてなんでしょう?

今回の質問事項はこれでしょうか?
エラーの内容がわからないのでなんとも言えませんが
report は DataGridView のメンバではないと言う感じのエラーではないですか?
だとするとこの質問に対する回答は
DataGridView に report メンバが無いからです。

> thisはDataGridViewをさしているように見えるのですが、

this は Jitta さんが仰る様にこの記述がされているクラスのインスタンスを指します。
逆になぜ this が DataGridView を指していると思えるのかと言う根拠が知りたいです。

> this=自分自身だから、buttonAdd_Click関数の中でthisと言えるのは
> buttonAddじゃないかな?と…

buttonAdd_Click 関数の中で言うなら(おそらく)
this = クラスのインスタンス
sender = buttonAdd
では無いでしょうか。
1

スキルアップ/キャリアアップ(JOB@IT)