2017-12-04 1 views
0

클래스의 인스턴스를 TextBoxes에서 List<Album>으로, 그리고 나서 내 WindowsForm에서 ListBox으로 추가하는 방법을 모르겠습니다.목록에 인스턴스를 추가 한 다음 창에있는 목록 상자에 추가하는 방법

여기에 지금까지 작성한 코드가 있지만 여기에 붙어서 다음에 무엇을해야할지 모르겠다.

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    List<Album> AlbumList = new List<Album>(); 

    private void TrackButton_Click(object sender, EventArgs e) 
    { 
     addTracks settingsForm = new addTracks(); 
     settingsForm.ShowDialog(); 
    } 

    private void CreateButton_Click(object sender, EventArgs e) 
    { 
     Album g = new Album (ASINtextBox.Text, AlbumNametextBox.Text, ArtisttextBox.Text, 
      ReleaseDatePicker.Text, LabeltextBox.Text, ImagetextBox.Text); 

     AlbumList.Add(g); 
    } 
} 

나는 오류가 없다. 나는 프로그램을 디버깅 할 때 새로운 목록을 만들지 않을 것이라고 생각한다.

이 클래스에 대한 코드입니다 :

eclass Album 
{ 
    private string ASIN; 
    private string AlbumName; 
    private string Artist; 
    private string ReleaseDate; 
    private string Label; 
    private string Image; 

    public Album(int ASIN) 
    { 
     this.ASIN = "no value"; 
     this.AlbumName = "no value"; 
     this.Artist = "no value"; 
     this.ReleaseDate = "no value"; 
     this.Label = "no value"; 
     this.Image = "no value"; 
    } 

    public Album(string ASIN, string AlbumName, string Artist, string ReleaseDate, 
     string Label, string Image) 
    { 
     this.ASIN = ASIN; 
     this.AlbumName = AlbumName; 
     this.Artist = Artist; 
     this.ReleaseDate = ReleaseDate; 
     this.Label = Label; 
     this.Image = Image; 
    } 

    public string aSIN 
    { 
     get { return this.ASIN; } 
     set { ASIN = value; } 
    } 

    public string albumName 
    { 
     get { return this.AlbumName; } 
     set { AlbumName = value; } 
    } 

    public string artist 
    { 
     get { return this.Artist; } 
     set { Artist = value; } 
    } 

    public string createDate 
    { 
     get { return this.ReleaseDate; } 
     set { ReleaseDate = value; } 

    } 

    public string label 
    { 
     get { return this.Label; } 
     set { Label = value; } 
    } 

    public string image 
    { 
     get { return this.Image; } 
     set { Image = value; } 
    } 
} 
+1

어떤 오류가 발생합니까? –

+0

앨범 클래스의 속성은 무엇입니까? –

+0

무엇이 작동하지 않습니까? 이미 새 앨범을 만들고 'CreateButton_Click' 이벤트의 목록에 추가하는 것처럼 보입니다. –

답변

0

좋아, 당신은 몇 가지 다른 옵션을 가지고 있지만, 가장 쉬운이 같은 것입니다 :

private void RefreshListBox() 
{ 
    myGuiListBox.Items.Clear(); 
    foreach(Album loopAlbum in this.AlbumList) 
    { 
     myGuiListBox.Items.Add(loopAlbum.ToString()); 
    } 
} 

... 다음, 목록 상자 (예 : 새 앨범 만들기 및 목록 <> 추가)를 변경하면 RefreshListBox() 함수를 호출하기 만하면됩니다.

+0

양식을 목록 상자에 연결하는 방법이 있습니까? 어리석은 질문에 대한 미안 나는 C#을 처음 접했고 때로는 혼란 스러웠다. 왜냐하면 나는 무엇을해야할지 모른다. –

0

목록 상자에 추가하지 않고 레이블을 통해 값만 표시하여 목록 상자를 해결했습니다.

private void ShowAlbumsButton_Click(object sender, EventArgs e) 
    { 
     int temp = AlbumList.Count(); 
     string talbumname = ""; 
     string talbumasin = ""; 
     string talbumartist = ""; 
     string talbumrelease = ""; 
     string talbumlabel = ""; 
     for (int n =0; n<temp;n++) 
     { 
      talbumname = talbumname + AlbumList[n].albumName; 
      talbumname = talbumname + '\n'; 

      talbumasin = talbumasin + AlbumList[n].aSIN; 
      talbumasin = talbumasin + '\n'; 

      talbumartist = talbumartist + AlbumList[n].artist; 
      talbumartist = talbumartist + '\n'; 

      talbumrelease = talbumrelease + AlbumList[n].createDate; 
      talbumrelease = talbumrelease + '\n'; 

      talbumlabel = talbumlabel + AlbumList[n].label; 
      talbumlabel = talbumlabel + '\n'; 

     } 
     label8.Text = talbumname; 

     label7.Text = talbumasin; 

     label9.Text = talbumartist; 

     label10.Text = talbumrelease; 

     label11.Text = talbumlabel; 
    } 

모두에게 도움을 청합니다.

관련 문제