如何将类列表项添加到列表框中

本文关键字:列表 添加 | 更新日期: 2023-09-27 18:28:35

所以我有这个带有两个类的命名空间:

namespace Fonoteka1
{
public class Daina : IEquatable<Daina>
{
    public string vardas { get; set; }
    public int kodas { get; set; }
    public Daina()
    {
        vardas = "nėra dainų";
        kodas = 0;
    }
    public bool Equals(Daina other)
    {
        throw new NotImplementedException();
    }
    public override string ToString()
    {
        return "Vieta: " + vardas + " Kodas: " + kodas;
    }
    public string getVardas()
    {
        return vardas;
    }
    public int getKodas()
    {
        return kodas;
    }
}
public class Program
{
    [STAThread]
   static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
        List<Daina> pradinis = new List<Daina>();
        List<Daina> antras = new List<Daina>();
        pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'R. City - Locked Away ft. Adam Levine.mp3", kodas = 125 });
        pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'Red Hot Chili Peppers - Californication.mp3", kodas = 1269 });
        pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'BWO - Sunshine In The Rain.mp3", kodas = 15 });
        pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'Cloud Atlas - Sextet.mp3", kodas = 89 });
}
}
}

和其他具有表单(GUI)的命名空间:

namespace Fonoteka
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }
    private void button1_Click(object sender, EventArgs e)
    {
    }
    private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {       
    } 
}
}

我想在列表框1(从Fonoteka)中打印pradinis列表(从Fonoteka1),但我不知道如何(在列表框中我无法到达pradinis名单)?此外,当我点击列表框中的一首歌时,用button1我想获得歌曲代码(Daina类的int kodas)有什么帮助吗?:)

如何将类列表项添加到列表框中

Application.Run(new Form1());之后的代码将在关闭表单后执行。

请将添加到列表的代码放在Form1_Load中,并添加到列表框1中。

private void Form1_Load(object sender, EventArgs e)
{
    pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'R. City - Locked Away ft. Adam Levine.mp3", kodas = 125 });
    pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'Red Hot Chili Peppers - Californication.mp3", kodas = 1269 });
    pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'BWO - Sunshine In The Rain.mp3", kodas = 15 });
    pradinis.Add(new Daina { vardas = @"C:'Users'Gintarė'OneDrive'KTU paskaitos'5 semestras'Multimedijos sistemų projektavimas'Projektas'Fonoteka'Media'Cloud Atlas - Sextet.mp3", kodas = 89 });
    foreach (Diana d in pradinis)
        listBox1.Items.Add(d.vardas);
}

变量应定义为Form1的变量

public partial class Form1 : Form
{
    List<Daina> pradinis = new List<Daina>();
    List<Daina> antras = new List<Daina>();
    ...
}

以及按钮文本更改。

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if(listBox1.SelectedIndex != -1)
        button1.Text = pradinis[listBox1.SelectedIndex].kodas.ToString();
    else
        button1.Text = "";
} 

更新:

列表antras似乎是为所选歌曲而设的,当单击按钮1时,下面的代码会将歌曲添加到antras中。

(使用CtrlShift在列表框中选择多个项目)

private void Form1_Load(object sender, EventArgs e)
{
    listBox1.SelectionMode = SelectionMode.MultiExtended;
    ...
}
private void button1_Click(object sender, EventArgs e)
{
    antras.Clear();
    foreach(int index in listBox1.SelectedIndices)
        antras.Add(pradinis[listBox1.SelectedIndex]);
}