#region 自定义变量
int currentCol = -1;
bool sort;
#endregion private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
#region 字符串加上小三角,TrimEnd的用法测试
string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');
string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');
#endregion
if (sort == false)
{
sort = true;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Des;
}
else if (sort == true)
{
sort = false;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Asc;
} listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);
this.listView1.Sort();
int rowCount = this.listView1.Items.Count;
if (currentCol != -1)
{
for (int i = 0; i < rowCount; i++)
{
this.listView1.Items[i].UseItemStyleForSubItems = false;
this.listView1.Items[i].SubItems[currentCol].BackColor = Color.White; if (e.Column != currentCol)
this.listView1.Columns[currentCol].Text = this.listView1.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
}
} for (int i = 0; i < rowCount; i++)
{
this.listView1.Items[i].UseItemStyleForSubItems = false;
this.listView1.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;
currentCol = e.Column;
}
} private void listView2_ColumnClick(object sender, ColumnClickEventArgs e)
{
#region 字符串加上小三角,TrimEnd的用法测试
string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');
string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');
#endregion
if (sort == false)
{
sort = true;
string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView2.Columns[e.Column].Text = oldStr + Des;
}
else if (sort == true)
{
sort = false;
string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView2.Columns[e.Column].Text = oldStr + Asc;
} listView2.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);
this.listView2.Sort();
int rowCount = this.listView2.Items.Count;
if (currentCol != -1)
{
for (int i = 0; i < rowCount; i++)
{
this.listView2.Items[i].UseItemStyleForSubItems = false;
this.listView2.Items[i].SubItems[currentCol].BackColor = Color.White; if (e.Column != currentCol)
this.listView2.Columns[currentCol].Text = this.listView2.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
}
} for (int i = 0; i < rowCount; i++)
{
this.listView2.Items[i].UseItemStyleForSubItems = false;
this.listView2.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;
currentCol = e.Column;
}
} public class ListViewItemComparer : IComparer
{
public bool sort_b;
public SortOrder order = SortOrder.Ascending; private int col; public ListViewItemComparer()
{
col = 0;
} public ListViewItemComparer(int column, bool sort)
{
col = column;
sort_b = sort;
} public int Compare(object x, object y)
{
if (sort_b)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
else
{
return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);
}
}
}
不知道为什么在我这里不起作用!会是哪里问题?
int currentCol = -1;
bool sort;
#endregion private void listView1_ColumnClick(object sender, ColumnClickEventArgs e)
{
#region 字符串加上小三角,TrimEnd的用法测试
string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');
string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');
#endregion
if (sort == false)
{
sort = true;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Des;
}
else if (sort == true)
{
sort = false;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Asc;
} listView1.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);
this.listView1.Sort();
int rowCount = this.listView1.Items.Count;
if (currentCol != -1)
{
for (int i = 0; i < rowCount; i++)
{
this.listView1.Items[i].UseItemStyleForSubItems = false;
this.listView1.Items[i].SubItems[currentCol].BackColor = Color.White; if (e.Column != currentCol)
this.listView1.Columns[currentCol].Text = this.listView1.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
}
} for (int i = 0; i < rowCount; i++)
{
this.listView1.Items[i].UseItemStyleForSubItems = false;
this.listView1.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;
currentCol = e.Column;
}
} private void listView2_ColumnClick(object sender, ColumnClickEventArgs e)
{
#region 字符串加上小三角,TrimEnd的用法测试
string Asc = ((char)0x25bc).ToString().PadLeft(4, ' ');
string Des = ((char)0x25b2).ToString().PadLeft(4, ' ');
#endregion
if (sort == false)
{
sort = true;
string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView2.Columns[e.Column].Text = oldStr + Des;
}
else if (sort == true)
{
sort = false;
string oldStr = this.listView2.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView2.Columns[e.Column].Text = oldStr + Asc;
} listView2.ListViewItemSorter = new ListViewItemComparer(e.Column, sort);
this.listView2.Sort();
int rowCount = this.listView2.Items.Count;
if (currentCol != -1)
{
for (int i = 0; i < rowCount; i++)
{
this.listView2.Items[i].UseItemStyleForSubItems = false;
this.listView2.Items[i].SubItems[currentCol].BackColor = Color.White; if (e.Column != currentCol)
this.listView2.Columns[currentCol].Text = this.listView2.Columns[currentCol].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
}
} for (int i = 0; i < rowCount; i++)
{
this.listView2.Items[i].UseItemStyleForSubItems = false;
this.listView2.Items[i].SubItems[e.Column].BackColor = Color.WhiteSmoke;
currentCol = e.Column;
}
} public class ListViewItemComparer : IComparer
{
public bool sort_b;
public SortOrder order = SortOrder.Ascending; private int col; public ListViewItemComparer()
{
col = 0;
} public ListViewItemComparer(int column, bool sort)
{
col = column;
sort_b = sort;
} public int Compare(object x, object y)
{
if (sort_b)
{
return String.Compare(((ListViewItem)x).SubItems[col].Text, ((ListViewItem)y).SubItems[col].Text);
}
else
{
return String.Compare(((ListViewItem)y).SubItems[col].Text, ((ListViewItem)x).SubItems[col].Text);
}
}
}
不知道为什么在我这里不起作用!会是哪里问题?
解决方案 »
- 关于读取word文档表格内容
- 两个UDP类的区别
- 赋值问题!
- 大家都帮忙看下这个问题
- 哪个朋友可以讲MySQLDriverCS.dll发送给我
- 如何将文本西框中的文本写入SQL SERVER
- [求助]一道笔试试题,请大家近来试试:)
- JavaScriptSerializer c# 反序列化的时候报错“ 没有为类型“System.String”定义无参数的构造函数
- 得到一个字符串,如何判断他是ASCII的还是,utf-8编码的,还有,如何将ASCII的转化为utf-8编码的啊?
- 如何使DataView的RowFilter满足多个条件?
- C# 字符串截取问题。
- datagridview如何默认选中第一行?
{
sort = true;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Des;
}
else if (sort == true)
{
sort = false;
string oldStr = this.listView1.Columns[e.Column].Text.TrimEnd((char)0x25bc, (char)0x25b2, ' ');
this.listView1.Columns[e.Column].Text = oldStr + Asc;
}
这个判断语句==什么也没有做
调试时,listView2_ColumnClick不启作用。
这一段代码,是我从网上复制到其中的。
listView2_ColumnClick事件,为什么不像其他button双击后可以出来?