• 締切済み

C#でスケジューラを開発中です。ComboBoxに項目を追加したいのですが...

C#でスケジューラを開発中です。 ComboBoxに最初から項目を入れて選択するのはできるのですが、 プログラムを実行させて項目を増やしたり、削除するにはどうしたらよいですか?? どなたか教えてください。 参考になることやサイトでも良いのでお願いします。

みんなの回答

回答No.2

こんばんわぁ、Blackwinglsです。 > コンボボックスに登録した項目を、別のフォームのコンボボックスに読み込むにはどうしたらよいかわかりますか?? フォーム間でのデータ渡しですか・・・? ここら辺で悩む人多いですねぇ。 色々ありますが一番簡単なのは、staticなグローバル変数を使う方法かな。 static public string[] ListValue; private void button1_Click(object sender, EventArgs e) { ListValue = textBox1.Text.Split(','); if (ListValue.Length == 0) { return; } comboBox1.Items.Clear(); for (int i = 0; i < ListValue.Length; i++) { comboBox1.Items.Add(i.ToString() + ":" + ListValue[i].ToString()); } } として、もう一方のフォームForm2はボタン2で開き private void button2_Click(object sender, EventArgs e) { Form2 ShowForm2 = new Form2(); ShowForm2.Show(); } Form2のロード時に、Form2上のcomboBox2にアイテムをセットします。 private void Form2_Load(object sender, EventArgs e) { string[] items = Form1.ListValue; if (items.Length == 0) { return; } comboBox2.Items.Clear(); for (int i = 0; i < items.Length; i++) { comboBox2.Items.Add(i.ToString() + ":" + items[i].ToString()); } } > あとプログラムを実行させたときに、それらの項目を残しておきたいのですが。 おっしゃるように、CSVでも良いと思います。 私だったらxmlかmdb選択すると思いますけど(^^; http://msdn.microsoft.com/ja-jp/library/fx29c3yd.aspx http://msdn.microsoft.com/ja-jp/library/zx8h06sz.aspx http://msdn.microsoft.com/ja-jp/library/cc437979(VS.71).aspx ではでは~☆ミ

vino149
質問者

お礼

ありがとうございました。

回答No.1

こんばんわぁ、Blackwinglsです。 private void button1_Click(object sender, EventArgs e) { string[] ListValue = textBox1.Text.Split(','); if (ListValue.Length == 0) { return; } comboBox1.Items.Clear(); for (int i = 0; i < ListValue.Length; i++) { comboBox1.Items.Add(i.ToString() + ":" + ListValue[i].ToString()); } } って、ことでしょうか? textBox1にカンマ区切りで入れた文字、例えば「a,b,c」って入れて、button1クリックすると、comboBox1のアイテムが新しく作られます。 ではでは~☆ミ

vino149
質問者

補足

ありがとうございました。 コンボボックスに追加、削除はできました。 追加で聞きたいのですが... コンボボックスに登録した項目を、別のフォームのコンボボックスに読み込むにはどうしたらよいかわかりますか?? 項目を追加や削除し、登録ボタンを押すと、別のフォームのコンボボックスにも同じように表示させたいのですが... あとプログラムを実行させたときに、それらの項目を残しておきたいのですが。 それは、やはりcsvファイルなどで保存し、書き込み読み込みをさせなければできないのでしょうか?? 教えてくれませんか?? お願いします。

関連するQ&A

  • VB.2010 ComboBox 項目選択

    Builder C++ではかなりのプログラムを作成していますが、拠点でプログラムを変更出来る様にVBでプログラムを作成し直しているVBに関してはほぼ初心者です。 VBでComboBoxを使用して内容を選択させようとして居ます。 プログラムの最初でComboBoxのTextに初期値(前回選択値)を設定して居ます。 ComboBoxで選択された内容はComboBoxの内容が変更された時に次回プログラム実行時の初期表示の為にiniファイルに書き込みをして居ます。 問題はプログラムの最初に初期値を書き込んだ時にもComboBoxの内容が変更される為、内容変更の割り込みが入り、iniファイルの書き込みルーチンが動作してしまう事です。 ComboBoxのTextの書き込の時に割り込みをしなくて、選択をした時のみ割り込みが発生する割り込みがあると良いのですが、調べた範囲では無い様でした。 Builder C++ではMouseUPイベントの割り込みを使って同じ機能を実現させたのですが、VBのMouseUpイベントでは一つ前に選択された内容しか入って来て居ない様です。 MouseUpのイベント割り込み先には以下のコーディングをして居ます。 Private Sub ComboBox1_MouseUp(ByVal sender・・・・・ Label1.Text = ComboBox1->Text End Sub しかし、これだと選択した時は前回選択された内容が表示されてしまいます。 当然 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender ・・・ Label1.Text = ComboBox1->Text End Sub の場合は選択された内容が表示されます。 双方共、実行後のComboBox自体の表示内容は選択されたものになって居ます。 MouseUpのイベントの時にも選択された内容が表示されれば、このイベントでは ComboBox1->Text 初期値を設定した時はイベントが発生しないので都合が良いのですが、一つ前に選択された内容しか表示されません。 MouseUpの時には未だ内部処理が終了していないので新しい内容が表示出来ないのでしょうか。 Builder C++ には Application->ProcessMessages()と言う、他のタスクを先に実行させる関数がありますが、多分VBにもその様な関数があると思いますので、それを挿入すれば最新の状態を入手できるものでしょうか。 上記目的を達成出来る方法はありますでしょうか。 無ければフラグを使用して、ComboBox1->Text に初期値を設定した時には割り込み先でiniファイルの書き込みをしない様にプログラムする予定です。 当然、初期値を表示して居るのですから初期値設定時に再度iniファイルに書き込みがあっても問題は無いのですが、実際には動作していけないプログラムを書きますので、初期値書き込み時には割り込みが無い様にしたいのです。 VBでの処理方法がありましたらお教え下さい。宜しくお願い致します。

  • VBのComboBoxで項目を抜き出したい

    ComboBoxに「あ、い、う、え、お」という項目があった時、現在「あ」が選択されている場合、 ボタンを押したときに現在選択されているコンボボックスの項目を抜き出したいです。 ListIndexだと「0」という数字は抜き出せますが、「あ」という項目が出ません。

  • ComboBoxの項目からある部分の数字だけを抽出したい。

    ComboBoxの項目からある部分の数字だけを抽出したい。 例えばComboBox内に「カツ丼 @500円@」という項目があったとします。 この項目内の@から@にある数字のみを抽出してTextBoxに表示したいのですがどうすればいいでしょうか。 お詳しい方、よければ教えてください。 よろしくお願いします。 開発環境はVisualStudio2010です。

  • 「ComboBox」が「comboBox」になる

    どうでもいいことを聞いてもいいですか? 汗 エクセル2003です。 http://www.cocoaliz.com/excelVBA/index/39/ を参考にシート上のコンボボックスを操作しているのですが なぜ変数のオブジェクト型の部分の「MSForms.comboBox」が 「ComboBox」という風に大文字で始まらないのでしょうか? わざと「c」を大文字の「C」に書き換えても、元に戻ってしまいます。 なのに、MSForms.にして「Crtrl + j」でヒントを出した時は大文字で「ComboBox」となっています。 私だけなのでしょうか? どこかで「comboBox」と宣言してしまったのかと思い探してみましたがありませんでした。 聞かれたときに困るので教えてください。 ご教授よろしくお願い致します。

  • ComboBox1_Changeについて

    Private Sub ComboBox1_Change() Dim si As Integer With UserForm1 .ComboBox2.Text = "" si = .ComboBox1.ListIndex ' ComboBox1 の何番目が選択されたかを得る Select Case si Case 0 ' 0番が選択されていたらComboBox2 の内容をC列から作成する .ComboBox2.RowSource = "Sheet1!C1" Case 1 .ComboBox2.RowSource = "Sheet1!C2" End Select End With End Sub コンボボックス1で選択された値に対して『Sheet1!C1』が 表示されるようにするには、『.RowSource』の部分に 適切な言語がありますでしょうか。 また、『.RowSource』は、こういう効果がある等 紹介しているサイトをご存知あれば教えてください。 (探してみたのですが、めぐり合えず)

  • AS3.0でComboBox

    プログラム超初心者です AS3.0でComboBoxをつかってmcを操作できませんか? ComboBoxに配列で入れて、ComboBoxの3番目を表示させると mc.gotoAndStop(2);←が実行されるようにしたいです 変更しやすくするためスクリプトに書いて使いたいです よろしくお願いします

    • ベストアンサー
    • Flash
  • C#のcomoboboxのアイテム選択直後にcomboboxウィンドウに表示される文字を変更するには?

    お世話になります。 C#で開発をしております。 comboboxでアイテムを選択直後にコンボボックスのテキストウィンドウに表示される文字を変更したいのですが、どのようにすれば変更できるか教えていただけないでしょうか? SelectedIndexChangedイベントや、TextUpdateイベント内で、 Text = "kk"; とすれば、どの項目を選択しても、kkと表示されると思ったのですが、 選択項目が表示されてしまいます。 2日悩んでいます。 宜しくお願い致します。

  • スケジューラでデフラグ

    WindowsXPにてスケジューラのタスクを設定しています。 実行するファイルは→C:\WINDOWS\system32\defrag.exe C:/f 実行して完了するのですが、実際はデフラグされていません。 何が原因なのでしょうか?これではデフラグは実行されませんでしょうか?

  • ComboBoxの値の取得

    ComboBoxのユーザーに表示される項目が A,B,C,D であるとし、プログラム内では A=100000 B=90000 C=80000 D=70000 と認識させ、計算に使用するにはどのような記述をすればいいですか?

  • dijit.form.ComboBoxについて

    こんにちは Dojo v1.7で開発を行っている者です。 開発しているモジュールで、dijit.form.ComboBoxを使用しているのですが、 ドロップダウンリストの項目を入力不可(選択は可能)にしたいと思っています。 プロパティで、readOnly:trueを設定してしまいますと、ドロップダウンリストも読取り専用になってしまい、選択出来なくなってしまいます。 どなたか、上記問題の解決をご存知の方おりますでしょうか?

専門家に質問してみよう