- PR -

DriveInfoクラスのインスタンス化

投稿者投稿内容
ネーブル
常連さん
会議室デビュー日: 2006/08/26
投稿数: 27
投稿日時: 2006-09-08 21:43
返事遅くなりました、みなさんお世話になります
Blueさん
引用:

array< DriveInfo^ >^


この形がイメージできませんでした
渋木宏明(ひどり)さん
引用:

ヘルプは見てないんですか?


すみません、見てませんでした^^);

ところで、コンボボックスに全ドライブの項目をセットして、任意のドライブを選択したら
そのドライブに対応した、VolumeLabel、DriveFormat、TotalSize、TotalFreeSpaceを
変化させたいのですが、イベントハンドラの取得方法が巧くいきません、
やりたいVBのサンプルは
http://www.microsoft.com/japan/msdn/vbasic/migration/tips/Drive/
このようなイメージです。
ご教授お願いいたします。

コード:

private:
System::Void Form1_Load(System::object^ sender, System::EventArgs^ e)
{
array< DriveInfo^ >^ allDrives = DriveInfo::GetDrives();

this->comboBox1->SelectedIndexChanged +=
gcnew System::EventHandler( this, &Form1::comboBox1_SelectedIndexChanged );

textBox1->Clear();
textBox2->Clear();
textBox3->Clear();
textBox4->Clear();
int SelectedIndex = 1;
this->comboBox1->Items->AddRange(allDrives);
textBox1->Text = allDrives[SelectedIndex]->VolumeLabel;
textBox2->Text = allDrives[SelectedIndex]->DriveFormat;
textBox3->Text = Convert::ToString(Int64(allDrives[SelectedIndex]->TotalSize));
textBox4->Text = Convert::ToString(Int64(allDrives[SelectedIndex]->TotalFreeSpace));
}




[ メッセージ編集済み 編集者: ネーブル 編集日時 2006-09-08 23:20 ]

[ メッセージ編集済み 編集者: ネーブル 編集日時 2006-09-08 23:20 ]
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2006-09-09 00:01
諸農です。

引用:

渋木宏明(ひどり)さん
引用:

ヘルプは見てないんですか?


すみません、見てませんでした^^);



ヘルプドキュメントはちゃんと見るべきだと思います。


引用:

変化させたいのですが、イベントハンドラの取得方法が巧くいきません、



イベントハンドラの取得というのはどういう意味でしょうか?
IDEのプロパティウィンドウでComboBoxのSelectedIndexChangedイベントハンドラを作ることが出来ないって事でしょうか?

コード:
private: System::Void Form1_Load(System::Object^  sender, System::EventArgs^  e) 
{
     label1->Text = "";
     label2->Text = "";
     label3->Text = "";
     label4->Text = "";

     array< DriveInfo^ >^ allDrives = DriveInfo::GetDrives();
     comboBox1->DataSource = allDrives;
     comboBox1->DisplayMember = L"Name";
}

private: System::Void comboBox1_SelectedIndexChanged(System::Object^  sender, System::EventArgs^  e) 
{
     array< DriveInfo^ >^ allDrives = (array< DriveInfo^ >^)comboBox1->DataSource;
     DriveInfo^ di = allDrives[comboBox1->SelectedIndex];
     if (di->IsReady){
         label1->Text = di->VolumeLabel;
         label2->Text = di->DriveFormat;
         label3->Text = di->TotalSize.ToString();
         label4->Text = di->TotalFreeSpace.ToString();
     }else{
         label1->Text = L"ドライブの準備ができていません";
         label2->Text = "";
         label3->Text = "";
         label4->Text = "";
     }
}



このコードは適当です(^^;

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
ネーブル
常連さん
会議室デビュー日: 2006/08/26
投稿数: 27
投稿日時: 2006-09-09 01:04
Jubeiさんお世話になります
引用:

ヘルプドキュメントはちゃんと見るべきだと思います。


注意します。
引用:

イベントハンドラの取得というのはどういう意味でしょうか?
IDEのプロパティウィンドウでComboBoxのSelectedIndexChangedイベントハンドラを作ることが出来ないって事でしょうか?


そういう意味です。
引用:

このコードは適当です(^^;


思い通りの動作をしました、Form1_LoadとcomboBox1_SelectedIndexChangedの動作の
切り分けを混同していました。ありがとうございました。

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