设置数据源属性时,无法修改 c# 项集合
本文关键字:修改 集合 数据源 属性 设置 | 更新日期: 2023-09-27 18:33:00
我正在尝试在列表框中上下移动项目,但不断收到错误,不知道如何解决。 该错误与" listBox1.Items.Remove(selected);
"
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.IO;
namespace company1
{
public partial class Form1 : Form
{
List<Configuration> lines = new List<Configuration>();
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.listBox1.Items.Clear();
//Read in every line in the file
using (StreamReader reader = new StreamReader("file.txt"))
{
string line;
while ((line = reader.ReadLine()) != null)
{
//string textfile = line;
string[] myarray = new string[] { "''n" };
string[] parts = new string[9];
parts = line.Split(myarray, StringSplitOptions.RemoveEmptyEntries);
lines.Add(new Configuration(parts[0], int.Parse(parts[1]), int.Parse(parts[2])));
line = reader.ReadLine();
}
}
listBox1.DataSource = lines;
listBox1.DisplayMember = "CompanyName";
}
private void moveup_button_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count > 0)
{
object selected = listBox1.SelectedItem;
int indx = listBox1.Items.IndexOf(selected);
int totl = listBox1.Items.Count;
if (indx == 0)
{
listBox1.Items.Remove(selected);
listBox1.Items.Insert(totl - 1, selected);
listBox1.SetSelected(totl - 1, true);
}
else
{
listBox1.Items.Remove(selected);
listBox1.Items.Insert(indx - 1, selected);
listBox1.SetSelected(indx - 1, true);
}
}
}
private void movedown_button_Click(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count > 0)
{
object selected = listBox1.SelectedItem;
int indx = listBox1.Items.IndexOf(selected);
int totl = listBox1.Items.Count;
if (indx == totl - 1)
{
listBox1.Items.Remove(selected);
listBox1.Items.Insert(0, selected);
listBox1.SetSelected(0, true);
}
else
{
listBox1.Items.Remove(selected);
listBox1.Items.Insert(indx + 1, selected);
listBox1.SetSelected(indx + 1, true);
}
}
}
}
}
使用 BindingList 对象:
- 使用初始项作为数据创建绑定列表
- 将列表框的数据源绑定到该绑定列表对象 在绑定列表中添加和删除项
- ,而不是在列表框中添加和删除项
http://msdn.microsoft.com/en-us/library/ms132679.aspx 的好例子
Conn obcon = new Conn();
SqlConnection ob = new SqlConnection(obcon.strCon);
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = new SqlCommand();
da.SelectCommand.Connection = ob;
SqlCommand ds = da.SelectCommand;
ds.CommandText = "Select* from UserManagement";
ds.CommandType = CommandType.Text;
DataTable dt = new DataTable();
da.Fill(dt);
DataTable dtt = new DataTable();
dtt.Columns.Add("FullName");
dtt.Rows.Add();
dtt.Rows[0]["FullName"] = "Select Name";
for (int i = 0; i < dt.Rows.Count; i++)
{
dtt.Rows.Add();
dtt.Rows[i + 1]["FullName"] = dt.Rows[i][0].ToString();
}
cmbFindUser.DataSource = dtt;
cmbFindUser.DisplayMember = "FullName";
cmbFindUser.ValueMember = "FullName";