当用户选择不同的项时,ListBox 控件会触发 SelectedIndexChanged 事件。可以在这个事件处理程序中获取用户选择的项,并进行相应的操作。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedIndex != -1)
{
MessageBox.Show("You selected: " + listBox1.SelectedItem.ToString());
}
}
如果希望用户双击某一项时触发事件,可以使用 MouseDoubleClick 事件。
private void listBox1_MouseDoubleClick(object sender, MouseEventArgs e)
{
int index = listBox1.IndexFromPoint(e.Location);
if (index != ListBox.NoMatches)
{
MessageBox.Show("You double-clicked: " + listBox1.Items[index].ToString());
}
}
如果想让用户可以拖拽 ListBox 中的项,可以使用 DragDrop 事件和 DragEnter 事件。
private void listBox1_MouseDown(object sender, MouseEventArgs e)
{
if (listBox1.SelectedItem != null)
{
listBox1.DoDragDrop(listBox1.SelectedItem, DragDropEffects.Move);
}
}
private void listBox1_DragEnter(object sender, DragEventArgs e)
{
if (e.Data.GetDataPresent(DataFormats.Text) && e.AllowedEffect == DragDropEffects.Move)
{
e.Effect = DragDropEffects.Move;
}
else
{
e.Effect = DragDropEffects.None;
}
}
private void listBox1_DragDrop(object sender, DragEventArgs e)
{
int index = listBox1.IndexFromPoint(listBox1.PointToClient(new Point(e.X, e.Y)));
if (index != ListBox.NoMatches)
{
object data = e.Data.GetData(DataFormats.Text);
listBox1.Items.Remove(data);
listBox1.Items.Insert(index, data);
}
}
这些是处理 ListBox 控件事件的一些常见技巧,可以根据实际需求进行相应的调整和扩展。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。