コンボボックスの文字列追加方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
happy1124

コンボボックスの文字列追加方法について

#1

投稿記事 by happy1124 » 11年前

初投稿です。色々ぐぐってみましたが解決できずじまいなので投稿させていただきます。

windows7のVisual Studio Express 2012のC++のCLRプロジェクトを使用しております。

接続されているドライブのドライブレターをコンボボックスに追加するソースを組もうとしております。
「c:\」と表示したいのですが、「67:\」のようにしか追加表示できてません。

以下ソースの、「Dletter = (i+'A')+":\\";」のところがおかしいはずなのはわかっていますが
どうしたらいいのかよくわからないです。
それともそもそもString^型で追加しようとしているのが、おかしいのでしょうか?
「Dletter = (i+'A')+":\\";」のところの修正方法、もしくは他の方法でも構わないので
ご教授頂ければ幸いです

コード:

 
private: System::Void MyForm_Load(System::Object^  sender, System::EventArgs^  e) {
 			 DWORD drive;
			 DWORD dwBits;
			 UCHAR i;
			 String^ Dletter;

			 comboBox1->SelectedIndex=0;
			 drive=GetLogicalDrives();
			 dwBits = 1;
 			 for(i = 0; i <= 26; i++)
			 {
				if(dwBits & drive)
				{
					Dletter = (i+'A')+":\\";
					comboBox2->Items->Add(Dletter);
				}
				dwBits <<= 1;
			 }
			 comboBox2->SelectedIndex=0;
		 }

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: コンボボックスの文字列追加方法について

#2

投稿記事 by softya(ソフト屋) » 11年前

お先に確認したいのですが、C++のCLRでのフォームアプリケーションは今後メジャーになることはなくフェードアウトする運命ということを理解した上で勉強されているって事でよろしでしょうか? C++2012からは新規作成がメニューから消えていることもからもわかると思いますが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

happy1124

Re: コンボボックスの文字列追加方法について

#3

投稿記事 by happy1124 » 11年前

はい、今更2012&Expressを使っているところからして、環境にしばりがありまして。。。
ExpressじゃなければたぶんCLRプロジェクトも使ってないと思います。
なので当面2012&Expressを使うと思います

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: コンボボックスの文字列追加方法について

#4

投稿記事 by softya(ソフト屋) » 11年前

2重投稿してしまったので削除。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 14年前
住所: 東海地方
連絡を取る:

Re: コンボボックスの文字列追加方法について

#5

投稿記事 by softya(ソフト屋) » 11年前

情報が少なくて、今後のバージョンなアップなどいろいろ差し障りが出るかもしれないことを理解されていれば問題無いです。
さて.NETに詳しいわけではないですが、(i+'A')がちゃんと文字列になっていないと思われます。
ただ、私もやったことがないので確証がありませんが、この辺りを使えばよいのかもしれません。
「Convert.ToChar メソッド (System)」
http://msdn.microsoft.com/ja-jp/library ... .110).aspx
更にToStringすれば晴れて文字列化です。これより楽な方法があるのかも知れませんが。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

happy1124

Re: コンボボックスの文字列追加方法について

#6

投稿記事 by happy1124 » 11年前

Dletter = Convert::ToChar((i+'A'))+":\\";
とすることで対応出来ました。ありがとうございます。
ToStringはいらなかったようです。

とりあえずとある調査のために使用するアプリを作りたいだけなので
今はこれでいいですが、本格的にソフト開発するようになったらまた
Expressじゃなくてちゃんと有料版も使えるように働きかけるつもりです。
ご協力ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る