/// <summary>
/// 上下移动 ListBox 内的项。
/// </summary>
/// by:范庆韬 2009-6-8,适用于 winform
/// <param name="listbox">控件名 ListBox</param>
/// <param name="type"> 0- 向上 1-向下</param>
/// <returns>int 0-成功 1-到顶了 2-到底了 3-要选择一项。</returns>
private int ListBox_UpNext(ListBox listbox, int type)
{
int returnstr = 0;
int list_count = listbox.SelectedItems.Count;
if (list_count == 1)
{
int _index = listbox.SelectedIndex; //取出选中的信息
int up_index = _index - 1; //根据选中的行,获取上一个项的信息
if (type == 1) up_index = _index + 1;
if (up_index < 0)
{
returnstr = 1; //返回值,到顶了。
up_index = 0;
MessageBox.Show("已经是第一项了!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (up_index > listbox.Items.Count - 1)
{
returnstr = 2; //返回值,到底了。
up_index = listbox.Items.Count - 1;
MessageBox.Show("已经是最后一项了!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
if (returnstr == 0)
{
string up_text = listbox.Items[up_index].ToString(); //计算出要操作的那一项的下一项。(向上的就出去前一项的内容,向下的就取出下一项的内容。)
listbox.Items.RemoveAt(up_index); //删除它
listbox.Items.Insert(_index, up_text); //在删除后的项列表的指定位置添加一个新的项,组合原来的项列表内容,组合后即为新顺序。
}
}
else
{
returnstr = 3;
MessageBox.Show("请选择一项移动。", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
return returnstr;
}
//使用样本。
ListBox_UpNext(listBox1, 0);