如何将班级列表项添加到列表框?

时间:2016-01-01 16:43:05

标签: c# list listbox

所以我有两个分支的命名空间:

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)
    {       
    } 
}
}

我想在listbox1(来自Fonoteka)中打印pradinis列表(来自Fonoteka1),但我不知道如何(在列表框中我无法达到pradinis列表)?此外,当我从列表框中获取一首歌时,使用button1我想获得那些歌曲代码(来自Daina类的int kodas) 有帮助吗? :)

1 个答案:

答案 0 :(得分:1)

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

请在Form1_Load内添加添加到列表中的代码,然后添加到listbox1。

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适用于所选歌曲,下面的代码会在点击button1时将歌曲添加到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]);
}