C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ComboBoxの初期化処理。


(過去ログ 89 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■52873 / inTopicNo.1)  ComboBoxの初期化処理。
  
□投稿者/ テヅー (2回)-(2010/08/26(Thu) 12:29:23)

分類:[C#] 

開発環境:Visual Studio2005 使用言語:C#

C#というかプログラミングについてアドバイスよろしくお願いします。

ある画面を作っていまして、ComboBoxに項目選択のカテゴリ名がA,B,Cとあるのですが、
プルダウン時にカテゴリ名が重複して入ってしまい、
このような形でComboBoxのプルダウンの初期化をしてみたのですが、
どうしてもエラーが出てしまうのです。

// ComboBoxの初期化関数
CmCategoryDelete();

〜処理は省く〜

/// <summary>
/// ComboBox を削除する。
/// 0要素を削除するため常に更新される。
/// </summary>
private void CmCategoryDelete()
{
int i = 0;
int RowCount = cmCategory.Items.Count;

while (i < RowCount)
{
cmCategory.Items.RemoveAt(0); }
}

何か足りないとは思いますが、ネットで引っ張ってきたため処理の説明もわかりませんが、
アドバイスいただけないでしょうか?

よろしくお願いします。
引用返信 編集キー/
■52874 / inTopicNo.2)  Re[1]: ComboBoxの初期化処理。
□投稿者/ マサヤ (123回)-(2010/08/26(Thu) 12:39:12)
「プルダウン時に」がよくわからないのですが、
cmCategory.Items.RemoveAt(0);
→cmCategory.Items.RemoveAt(i);
これでどうでしょう?
引用返信 編集キー/
■52875 / inTopicNo.3)  Re[1]: ComboBoxの初期化処理。
□投稿者/ よねKEN (586回)-(2010/08/26(Thu) 12:54:13)
よねKEN さんの Web サイト
No52873 (テヅー さん) に返信
> ある画面を作っていまして、ComboBoxに項目選択のカテゴリ名がA,B,Cとあるのですが、
> プルダウン時にカテゴリ名が重複して入ってしまい、

なぜ重複するのか原因を追究し、この問題の根本原因をつぶすのが正しい解決策では?
原因究明せずに別の対策をとるのはただの「臭い物にふた」ですよ。

> このような形でComboBoxのプルダウンの初期化をしてみたのですが、
> どうしてもエラーが出てしまうのです。

何の例外が出るのですか?例外にはメッセージも表示されるはずですが、
それを読んで理解することがまず最初にやるべきことでは?

> /// <summary>
> /// ComboBox を削除する。
> /// 0要素を削除するため常に更新される。
> /// </summary>
> private void CmCategoryDelete()
> {
> int i = 0;
> int RowCount = cmCategory.Items.Count;
>
> while (i < RowCount)
> {
> cmCategory.Items.RemoveAt(0); }
> }

whileの条件式がおかしいでしょう。
iやRowCountがこのメソッドの中でどのように変化するのか考えてください。
正解は・・・書かないでおきます。
(ヒント:変数i、変数RowCountはどちらも不要)

> 何か足りないとは思いますが、ネットで引っ張ってきたため処理の説明もわかりませんが、

意味を理解する作業が足りないと思います。

引用返信 編集キー/
■52882 / inTopicNo.4)  Re[2]: ComboBoxの初期化処理。
□投稿者/ テヅー (3回)-(2010/08/26(Thu) 15:19:44)
No52875 (よねKEN さん) に返信

アドバイスありがとうございます。
Whileの条件式ですか・・もう一度良くステップ実行や解析をして理解をしてみたいと思います。

引用返信 編集キー/
■52884 / inTopicNo.5)  Re[2]: ComboBoxの初期化処理。
□投稿者/ テヅー (4回)-(2010/08/26(Thu) 15:32:25)
No52874 (マサヤ さん) に返信

アドバイスありがとうございます。
なるほど!そこだったのですね。
前回も含めて的確なアドバイスを頂きましてありがとうございました。
下記のアドバイスで解決できました。
> cmCategory.Items.RemoveAt(0);
> →cmCategory.Items.RemoveAt(i);
> これでどうでしょう?

なかなか伝え方が難しくて、
こういった的確なアドバイスを頂いて解決できたことを感謝しています。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -