質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

1回答

3987閲覧

ComboBoxの値をコード上で設定をする方法

xlostdjx

総合スコア39

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2018/06/01 04:57

編集2018/06/01 06:03

C#

このようにコード書いてみたのですが動きません。
```
コード

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace W
{
public partial class Form1 : Form
{
public class ItemSet
{
// DisplayMemberとValueMemberにはプロパティで指定する仕組み
public String ItemDisp { get; set; }
public int ItemValue { get; set; }

// プロパティをコンストラクタでセット public ItemSet(int v, String s) { ItemDisp = s; ItemValue = v; } } public Form1() { InitializeComponent(); // ComboBox用データ作成 //ListでOK //IList インターフェイスまたは //IListSource インターフェイスを実装する、DataSet または Array などのオブジェクト。 List<ItemSet> src = new List<ItemSet>(); src.Add(new ItemSet(1, "Number1"));/// 1つでItem1つ分となる src.Add(new ItemSet(2, "Number2")); src.Add(new ItemSet(3, "Number3")); // ComboBoxに表示と値をセット comboBox1.DataSource = src; comboBox1.DisplayMember = "ItemDisp"; comboBox1.ValueMember = "ItemValue"; // 初期値セット comboBox1.SelectedIndex = 0; comboBox1_SelectedIndexChanged(null, null); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { // labelに現在コンボ選択の内容を表示 ItemSet tmp = ((ItemSet)comboBox1.SelectedItem);//表示名はキャストして取りだす labelDisplay.Text = tmp.ItemDisp; labelValue.Text = comboBox1.SelectedValue.ToString();//値はそのまま取りだせる }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/06/01 04:58

コードは ``` と ``` で囲ってください。インデントされて見やすくなります。
xlostdjx

2018/06/01 05:00

すみません。以後きおつけます。
退会済みユーザー

退会済みユーザー

2018/06/01 05:04

何を作っているか(Windows Forms? WPF? その他?)書いてください。コードを読めばわかるとは言わないでくださいね。あなたが質問の最初の一行目に書けば済む話なのですから。開発環境(OS, .NET, Visual Studio のバージョンなど)を書いてください。
ponpu1601

2018/06/01 05:06

動かないだけだと情報が少なすぎます。 どのような動作が理想で、現状どのような動作をするのか(エラーが出ているのか、単にテキストが反映されないだけなのか等)も併せて記述をお願いします。
退会済みユーザー

退会済みユーザー

2018/06/01 05:09

たびたびですみませんが、「動きません」だけでは情報不足です。〇○○という結果を期待したが、アップされているコードでは、期待と違って△△△になってしまう・・・というように、ある程度具体的に書いてください。
xlostdjx

2018/06/01 05:15

ビルドしたのですが エラーになり動かないです
xlostdjx

2018/06/01 05:15

コード自体にはエラーはないです。
ponpu1601

2018/06/01 05:26

ビルドエラーが出た時のメッセージまで具体的に、質問に追記、修正を加えてください。
xlostdjx

2018/06/01 06:10

コードを編集しました、 ビルドしてコンボボックスをを変更してもラベルに反映されません、 どこがおかしいのでしょうか??
ponpu1601

2018/06/01 06:39

コードを編集するだけではなく、SurferOnWwwさんがおっしゃっていることや、「何がしたいのか」、「今どうなっているのか」をできるだけ詳細に「質問に追記、修正を加えて」ください。また、すでに回答をくださっている方のアドバイスは試されたでしょうか?
xlostdjx

2018/06/01 06:44

Windows, .NET, Visual Studio2015 です。  Items.Add に 文字と番号を設定して  その番号で switch文のcaseを分岐させるのが最終目的です。
ponpu1601

2018/06/01 06:50

それを質問文の中に書いてください。また、エラーが出ているのならエラーが出ている箇所(赤の波線)にカーソルを合わせるとエラーメッセージが出るはずなのでそれも併せて書くようお願い致します。
xlostdjx

2018/06/04 01:23

例えばなんですけど  cmb.Items.Add("切り捨て"); と書いたとして この時点でインデックス番号はついているのでしょうか??
guest

回答1

0

ベストアンサー

ビジュアルコンポーネントを動的に作成した場合は、それぞれのコンポーネントのParentプロパティを親コンポーネントに設定しないと出てきません

comboBox.Parent = this; //MainFormの上で出すなら

その他、Locationとかも設定してやらないと。


ソースが修正されてワケワカメに。
んじゃ最初から。

・新規にプロジェクト作成、VisualC#>Windowsフォームアプリケーションを選択
・ソースに以下を追加

C#

1 public partial class Form1 : Form 2 { 3 public Form1() 4 { 5 InitializeComponent(); 6 7 ComboBox cb = new ComboBox(); 8 cb.Items.Add("aaaa"); 9 cb.Items.Add("bbbb"); 10 cb.Items.Add("cccc"); 11 cb.Parent = this; 12 } 13 }

・で実行すると、
イメージ説明

・バッチシ!

投稿2018/06/01 05:12

編集2018/06/01 06:25
y_waiwai

総合スコア87747

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

xlostdjx

2018/06/01 06:39

この場合だと番号はついていないですよね?? Items.Add に 文字と番号を設定して  その番号で switch文のcaseを分岐させたいのですが ここまでのここまでのコードを書いていただけないでしょうか??
y_waiwai

2018/06/01 06:47

なにをしたいのか、というのを質問に書きましょう んで、わざわざ番号書かなくても、cb.SelectedIndex で、何番目の要素が選択されたか、というのが取れるので、それでSwitch させましょう って、回答の例ではcbはローカル変数になってしまっているので(外から参照できない)、外で定義するなり、てきとーにアレンジしてください
len_souko

2018/06/01 14:23

>ここまでのここまでのコードを書いていただけないでしょうか?? ここは「思考するエンジニアのためのQAプラットフォーム」です。プログラマーへ無償で労働をさせる場所ではありません。
xlostdjx

2018/06/04 01:24

例えばなんですけど  cmb.Items.Add("切り捨て"); と書いたとして この時点で(”切り捨て”)にはインデックス番号はついているのでしょうか??
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問