protected void btn_up_Click(object sender, EventArgs e)


...{

if (lb_busspot.SelectedIndex == -1)


...{

return;

}


//獲得連續選中的項索引

int[] Indices = lb_busspot.GetSelectedIndices();

int length = Indices.Length;


string text;

string value;

//如果選擇的最小索引是0,表示是最上面的項

if (Indices[0] == 0)


...{

return;

}

//判斷選擇多項時是否是連續的項

if (Indices.Length != 1 && Indices[0] + length - 1 != Indices[length - 1])


...{

MessageBox.Show(Page, "請選擇連續的項!");

return;

}

//將選中的上面一項未選中的值賦予臨時變量

text = lb_busspot.Items[Indices[0] - 1].Text;

value = lb_busspot.Items[Indices[0] - 1].Value;


for (int i = 0; i < length; i++)


...{

lb_busspot.Items[Indices[i] - 1].Text = lb_busspot.Items[Indices[i]].Text;

lb_busspot.Items[Indices[i] - 1].Value = lb_busspot.Items[Indices[i]].Value;

//保證被選中狀態

lb_busspot.Items[Indices[i] - 1].Selected = true;

lb_busspot.Items[Indices[i]].Selected = false;

}

//將選中的上面第一條未選中的值賦予到下面

lb_busspot.Items[Indices[0] + length - 1].Text = text;

lb_busspot.Items[Indices[0] + length - 1].Value = value;


}

protected void btn_down_Click(object sender, EventArgs e)


...{

if (lb_busspot.SelectedIndex == -1)


...{

return;

}

//獲得連續選中的項索引

int[] Indices = lb_busspot.GetSelectedIndices();

int length = Indices.Length;


string text;

string value;

//如果選擇的是最底下的項

if (Indices[length - 1] == lb_busspot.Items.Count - 1)


...{

return;

}

//判斷選擇多項時是否是連續的項

if (Indices.Length != 1 && Indices[0] + length - 1 != Indices[length - 1])


...{

MessageBox.Show(Page, "請選擇連續的項!");

return;

& //將選中的下面一項未選中的值賦予臨時變量

text = lb_busspot.Items[Indices[length - 1] + 1].Text;

value = lb_busspot.Items[Indices[length - 1] + 1].Value;

for (int i = length; i > 0; i--)


...{

lb_busspot.Items[Indices[i - 1] + 1].Text = lb_busspot.Items[Indices[i - 1]].Text;

lb_busspot.Items[Indices[i - 1] + 1].Value = lb_busspot.Items[Indices[i - 1]].Value;

//保證被選中狀態

lb_busspot.Items[Indices[i - 1] + 1].Selected = true;

lb_busspot.Items[Indices[i - 1]].Selected = false;

}

//將下面第一條未選中的項的值賦予到上面

lb_busspot.Items[Indices[0]].Text = text;

lb_busspot.Items[Indices[0]].Value = value;

}