Che*_*ire 10 c# combobox class list populate
Newb在这里,我正在制作一个有一个组合框的表格,它会显示几个Charlie Brown电视特价,您可以点击选择并查看描述,评级,运行时等.我很接近,但我在填充组合框方面不存在,我希望得到一些帮助和指导.我已经看过别人做过的几件事,但是我知识不足以从我迄今为止看到的内容中推断出答案.
现在我也在尝试:1.从你的加载方法获取列表2.循环它们3.访问我的组合框,用列表中的时间填充该框.
Form1.cs的
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Globalization;//Used for Sting.ToUpperCase...
using System.Threading;
using System.Threading.Tasks;// Needed for Streaming...
using System.IO;// Needed for Streaming...
namespace a100___GUI___VideoStoreSelections
{
public partial class FormMovieLookUp : Form
{
private const String FILE_NAME = "txt_movieDescriptions.txt";//connect to text file in debug
private List<Listing> films { get; set; }
public FormMovieLookUp()
{
InitializeComponent();
}
private void cmbMovieListingBox_SelectedIndexChanged(object sender, EventArgs e)
{
txtTitleBox.Text = cmbMovieListingBox.SelectedItem.ToString();
}
//ToolBox -- my program specific tools
public List<Listing> LoadListings()//load movie descriptions as list
{
StreamReader fileIn = new StreamReader(FILE_NAME);
List<Listing> entries = new List<Listing>();
//loop through every line of the file
while (!fileIn.EndOfStream)
{
String line = fileIn.ReadLine();
String[] pieces = line.Split(':');
if (pieces.Length < 4) continue;//error handling - set to length of text items
Listing myListing = new Listing(pieces[0], pieces[1], pieces[2], pieces[3]);
entries.Add(myListing);
}
fileIn.Close();
return entries;
}
private void FormMovieLookUp_Load_1(object sender, EventArgs e)
{
films = LoadListings();
foreach (Listing film in films)
{
Console.WriteLine(film);
cmbMovieListingBox.Items.Add(film.GetFilmTitle());
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Listing.CS
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace a100___GUI___VideoStoreSelections
{
public class Listing
{
private String filmTitle;
private String description;
private String filmRunTime;
private String filmRating;
public Listing(String filmTitle, String description, String filmRunTime, String filmRating)
{
this.filmTitle = filmTitle;
this.description = description;
this.filmRunTime = filmRunTime;
this.filmRating = filmRating;
}
public String GetFilmTitle() { return filmTitle; }
public String GetDescription() { return description; }
public String GetFilmRunTime() { return filmRunTime; }
public String GetFilmRating() { return filmRating; }
}
Run Code Online (Sandbox Code Playgroud)
}
所以这就是我想要填充我的组合框.谢天谢地收到任何帮助.
Tsu*_*asa 16
我会保持List<Listing>在课程级别,以便您在用户点击它时可以访问它.我也会把它放在它自己的线程上,而不是直接在Load事件中.如果这是一个漫长的过程,你将挂起ui.
private List<Listing> films { get; set; }
Run Code Online (Sandbox Code Playgroud)
加载
films = LoadListings();
foreach (Listing film in films)
{
cmbMovieListingBox.Items.Add(film.GetFilmTitle());
}
Run Code Online (Sandbox Code Playgroud)
当用户选择项目时
Listing film = films.Where(f => f.GetFilmTitle().Equals(cmbMovieListingBox.SelectedValue)).FistOrDefault();
if (film != null)
{
//do work
}
Run Code Online (Sandbox Code Playgroud)
如果您问的是我想问的问题,则在表单加载中需要这样的内容:
foreach(Listing listing in LoadListings()){
cmbMovieListingBox.Items.Add(listing.GetFilmTitle());
}
Run Code Online (Sandbox Code Playgroud)