문제

AddRange 메소드를 사용하여 콤보 박스 컨트롤의 항목 모음에 추가하려는 객체 배열이 있습니다. 이 방법은 object[] 그러나 내가 그것을 전달할 때 일부 값으로 집중된 배열의 이름을 전달하면 불평합니다.

최고의 과부하 메소드 일치 System.Windows.Forms.ComboBox.ObjectCollection.AddRange(object[]) 몇 가지 잘못된 주장이 있습니다.

내 배열의 개체를 정의하는 클래스는 매우 간단합니다.

public class Action
{
   public string name;
   public int value;
   public override string ToString()
   {
      return name;
   }
}

and my array is declared such:

    public Action[] actions = new Action[] {
    new Action() { name = "foo", value = 1 },
    new Action() { name = "bar", value = 2 },
    new Action() { name = "foobar", value = 3 }
};

내가 전화하려고하는 곳입니다 AddRange:

combobox1.Items.AddRange(actions);

그리고 그것이 불평하는 줄입니다.이 작업을 수행 할 수있는 단계가 있습니까? 간단한 것을 추가하면 잘 작동합니다 string[]

도움이 되었습니까?

해결책

아래와 같이 .NET C# 테스트 프로젝트에서 시도해 보았습니다. 샘플 코드는 다음과 같습니다.

 public partial class Form1 : Form
    {
        public Action[] actions = new Action[]
            {
new Action() { name = "foo", value = 1 },
new Action() { name = "bar", value = 2 },
new Action() { name = "foobar", value = 3 }
            };

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Items.AddRange(actions);
        }

    }

    public class Action
    {
        public string name;
        public int value;
        public override string ToString()
        {
            return name;
        }
    }

따라서 액션 객체를 어디에서 선언했는지 알려야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top