私はこのプログラムがやりたいことは、別のプログラムによって書き込まれた名前のリストを持つExcelファイルを読み込み、それをチェックリストボックスにインポートすることです。このプログラムでは、ユーザーが名前を選択できるようにし、開始ボタンをクリックすると新しいフォームページに移動し、LabelBoxの上部に名前を表示します(これは、LabelBoxが返すもの"System.WindowsForms.CheckedListBox.CheckedItemCollection ...."(私は、新しいフォームページがそれを読むことができるように、名前をXMLファイルに書き込ませることによってこれをやっています。私が持っている:Excelファイルから情報を取得しているCheckListBoxのチェック項目の文字列値を取得する方法は?
FORM1:
NameListBox.CheckOnClick = true;
NameListBox.Name = "NameListBox";
NameListBox.TabIndex = 1;
NameListBox.SelectionMode = SelectionMode.One;
NameListBox.ThreeDCheckBoxes = true;
NameListBox.DisplayMember = "Name";
NameListBox.Items.Add(ExcelSheet.Cells[2, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[3, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[4, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[5, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[6, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[7, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[8, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[9, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[10, 1].text);
NameListBox.Items.Add(ExcelSheet.Cells[11, 1].text);
Controls.Add(NameListBox);
object itemChecked = NameListBox.CheckedItems;
string SName = itemChecked.ToString();
try
{
Data info = new Data();
info.Name1 = SName;
Login.SaveName.SaveNameData(info, "Name.xml");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
//Form2.StartUp.StudentLabelName(StudentName);
//StudentName = Form2.NameLabel.Text;
}
public class SaveName
{
public static void SaveNameData(object obj, string filename)
{
XmlSerializer sr = new XmlSerializer(obj.GetType());
TextWriter writer = new StreamWriter(filename);
sr.Serialize(writer, obj);
writer.Close();
}
}
public class Data
{
private string name1;
public string Name1
{
get { return name1; }
set { name1 = value; }
}
}
FORM2:
public void StudentNames()
{
if (File.Exists("Name.xml"))
{
XmlSerializer xs = new XmlSerializer(typeof(Login.Data));
FileStream read = new FileStream("Name.xml", FileMode.Open, FileAccess.Read, FileShare.Read);
Login.Data info = (Login.Data)xs.Deserialize(read);
NameLabel.Text = info.Name1;
}
}
ありがとうございます。
「データ」はどのようなオブジェクトタイプですか? –
NameListBox.CheckedItemsは複数のアイテム、つまりコレクションです.1つのエントリだけを試したい場合:NameListBox.CheckedItems.First – Master117