对列表视图列中的项目进行排序
本文关键字:项目 排序 列表 视图 | 更新日期: 2023-09-27 18:20:45
嗨,我有一个列表视图,包含不同的列ID、名称、Zipcode、城市、国家、电话、电子邮件我有两个表格,Form1和Form2
在第一个表单中,我有带列的列表视图在第二个表单上,我有一个带有不同列表框的自定义经理,您可以在其中键入客户信息(例如姓名、Zipcode、城市等)
我希望Form2中的信息在Form1中的列之后排序。例如,Form2中的"name"Texbox应插入Form1列表视图中的"name"列下,文本框Zipcode文本应插入Zipcode列下。
图片http://img717.imageshack.us/img717/3486/skiten1.png
这很难,因为我有点初学者,关注不同的网站对我没有帮助。
请问我能做什么。
Form1
InitializeComponent();
listView1.View = View.Details;
listView1.LabelEdit = true;
listView1.AllowColumnReorder = true;
listView1.FullRowSelect = true;
listView1.GridLines = true;
listView1.Sorting = SortOrder.Ascending;
listView1.FullRowSelect = true;
listView1.Columns.Add("ID", 300, HorizontalAlignment.Left);
listView1.Columns.Add("Name", 70, HorizontalAlignment.Left);
listView1.Columns.Add("Zipcode", 70, HorizontalAlignment.Left);
listView1.Columns.Add("City", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Country", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Phone", 100, HorizontalAlignment.Left);
listView1.Columns.Add("Email", 100, HorizontalAlignment.Left);
Form2
private void btnOk_Click(object sender, EventArgs e)
{
contact.FirstName = tbFirstName.Text;
firstName = contact.FirstName;
contact.LastName = tbLastName.Text;
lastName = contact.LastName;
Form2
private void btnOk_Click(object sender, EventArgs e)
{
MainForm main = new MainForm();
contact.FirstName = tbFirstName.Text;
firstName = contact.FirstName;
contact.LastName = tbLastName.Text;
lastName = contact.LastName;
静态Form2
public override string ToString()
{
return string.Format("[{0}]", contact.ToString());
}
//联系人类来了
class Contact
{
private string firstName;
private string lastName
在Contact类中,还有上述变量的属性,然后是类似的ToString
public override string ToString()
{
return string.Format("[{0}, {1}, {2}, {3}]", firstName, lastName);
}
Form1
private void MainForm_Load(object sender, EventArgs e)
{
ColumnHeader columnheader;
ListViewItem listviewitem;
// Ensure that the view is set to show details.
listView1.View = View.Details;
if (customerframe.ShowDialog() == DialogResult.OK) //if button OK is clicked then value will be inserted
{
listviewitem = new ListViewItem(contact.FirstName);
listviewitem.SubItems.Add(contact.LastName);
this.listView1.Items.Add(listviewitem);
我真的不知道你需要多少代码来帮助我,而且,我的代码非常混乱
这并不完全是传统意义上的"排序"。您只是想将ListViewItem
添加到ListView控件中,然后将更多信息添加到该ListViewItem的SubItems中。
一个例子看起来像这样:
ListViewItem lvi = new ListViewItem(yourID);
lvi.SubItems.Add(contact.Fullname);
lvi.SubItems.Add(zipcode);
lvi.SubItems.Add(city);
lvi.SubItems.Add(address.country);
lvi.SubItems.Add(phone);
lvi.SubItems.Add(email);
listView1.Items.Add(lvi);
更新:
您的customerFrame类(Form2)看起来没有对Contact
引用的引用。
customerFrame返回一个Contact对象,其中包含已填写的数据。类似这样的东西:
Public Contact GetContact() {
Contact contact = new Contact();
contact.FirstName = tbFirstName.Text;
// etc.
return contact;
}
然后你的Form1呼叫应该是这样的:
using (var customerFrame = new CustomerFrame()) {
if (customerFrame.ShowDialog() == DialogResult.OK) {
Contact contact = customerFrame.GetContact();
listviewitem = new ListViewItem(contact.FirstName);
listviewitem.SubItems.Add(contact.LastName);
// etc.
this.listView1.Items.Add(listviewitem);
}
}