[英]how to show Selected index from listbox to text box
我正在创建一个程序,允许用户单击列表框中的 ID,它将显示 csv 数据文件中的图片、名字、姓氏和爱好。 我在尝试显示名称时遇到问题,我不断收到的错误是您无法将字符转换为字符串。 在第 32 行,它尝试将数据输入到 txtLast.text 是错误所在。 它说不能将 char 隐式转换为字符串,并且它返回一个零基索引。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace StudentInformation
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
string[] lines = System.IO.File.ReadAllLines("class.csv");
foreach (var line in lines)
{
String[] words = line.Split(',');
string StudentId = words[0];
string last = words[1];
string first = words[2];
string hobby = words[3];
listBox1.Items.Add(StudentId);
txtLast.Text = last [listBox1.SelectedIndex];
//txtLast.Text = last[listBox1.SelectedIndex];
}
Image[] images = { Properties.Resources.Image1, Properties.Resources.Image1, Properties.Resources.Image1,
Properties.Resources.Image1,Properties.Resources._700684235,Properties.Resources.Image1,Properties.Resources.Image1,
Properties.Resources._700640699,Properties.Resources._700690019,Properties.Resources._700653005,Properties.Resources._700688218,
Properties.Resources._700696692,Properties.Resources.Image1,Properties.Resources.Image1,Properties.Resources._700661732,
Properties.Resources.Image1,Properties.Resources._700645894,Properties.Resources._700658141,Properties.Resources._700644980,
Properties.Resources._700683782,Properties.Resources._700672657,Properties.Resources._700690042,Properties.Resources._700684588,};
}
private void btnSave_Click(object sender, EventArgs e)
{
}
}
}
我不确定你到底想做什么,但如果你在 char 之后添加 .ToString() 它将把 char 转换回字符串,防止错误(除非你的 listBox1.SelectedIndex 大于长度学生的姓氏)。
last[listBox1.SelectedIndex].ToString();
txtLast.Text = 最后; 将工作
它应该可以正常工作,因为 last 已经是字符串。
您实际上是通过传递列表框索引从字符串中获取字符。 因此只接收一个字符。
似乎您正在尝试在项目选择更改方法上将数据绑定到 ListBox 希望下面的说明会有所帮助。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
PopulateListBoxData();
}
private void PopulateListBoxData()
{
//1. Select data from CSV File
string[] lines = System.IO.File.ReadAllLines("class.csv");
//2. Convert it to datatable
//3. Bind Data To Listbox
listBox1.DataSource = oTable;
listBox1.ValueMember = "ID";
listBox1.DisplayMember = "LastName"; //What ever name(First+Last)
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//4. When Item list clicked this method will fire
string value = listBox1.SelectedValue.ToString().Trim();
string seletedtext = listBox1.SelectedItem.ToString().Trim();
if (string.IsNullOrEmpty(value))
{
//Save to DB 0r Display Item
}
}
private void btnSave_Click(object sender, EventArgs e)
{
}
}
*CSV Format(class.csv)
ID,LastName,FirstName,Hobby
1,Tom,William,Game
2,Adams,Smile,Tennis
3,Kei,Hetath,Circket*
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.