2016-11-08 9 views
0

私はWinFormsコーディングに新しく、3つのボタン(circle,linerectangle)を持つこのミニペイントを作ろうとしています。ここに私のボタンです:WinFormsとC#を使用してコンボボックスを作る方法

private void circle_btn_Click(object sender, EventArgs e) 
{ 
    circle c = new circle() {startx=10,thickness=4,starty=10,radius=100,color=Color.Black }; 
    shapes.Add(c); 
    panel1.Invalidate(); 
} 
private void rectangle_btn_Click(object sender, EventArgs e) 
{ 
    rectangle r = new rectangle() { startx = 10,thickness=4, starty = 10, length = 200, width = 100, color = Color.Black }; 
    shapes.Add(r); 
    panel1.Invalidate(); 
} 

private void line_btn_Click(object sender, EventArgs e) 
{ 
    line l = new line() {startx=10,starty=10,thickness=4,endx=200,endy=200,color=Color.Black }; 
    shapes.Add(l); 
    panel1.Invalidate(); 
} 

彼らに私をクリックすると、ランダムな形状は、私のPanelに印刷されます。 PropertyGridのプロパティを変更するために、これらの3つの値(円、線、矩形)を持つComboBoxを作成したいと思います。私は次のようなものを試しました:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    Button namestr = line_btn; 
    comboBox1.Items.Add(namestr); 
} 

しかし、私はそれが正しいと思います。それはどうやってやるの?

+0

間違って何をして起こっていますか? SelectedIndexが変更されたとき、または他のボタンの1つが機能していないときにエラーはありますか? – vipersassassin

+0

ボタンは正しく機能していますが、コンボボックスはまだ空です – sara

+0

コンボボックスに何も追加していない場合、どのようにSelectedIndexを変更できますか?まず何かを追加してから、SelectedIndexChangedイベントハンドラに入るようにインデックスを変更する必要があります。 – vipersassassin

答えて

1

あなたができることは、ComboBoxを最初に挿入することです。コンストラクタで:

public Form1() 
{ 
    comboBox1.Items.AddRange(new List<string>() { "circle", "line", "rectangle"}.ToArray()); 
} 

か、すでに配列取る:SelectedIndexChangedイベントの値に従って

public Form1() 
{ 
    comboBox1.Items.AddRange(new string []{ "circle", "line", "rectangle"}); 
} 

をして切り替える:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    switch (comboBox1.SelectedItem.ToString()) 
    { 
     case "circle": 
      //do something circular 
      break; 
     case "line": 
      //do something linish 
      break; 
     case "rectangle": 
      //do something edgy 
      break; 
     default: 
      break; 
    } 
} 
+0

私の質問に答えることをありがとうが、 "comboBox1.Items.AddRange(new List (){" circle "、" line "、" rectangle "});"いくつかのエラーがあります – sara

+0

最後に決定的な要素を忘れました: '.ToArray()'。このメソッドは、リストではなく配列を必要とします。私は自分の投稿を編集しました。あなたはすでに 'string []'を取るこ​​とができます –

+0

私は配列でそれを行い、それはうまくいったのです。おかげでたくさん:) – sara

関連する問題