SelectionMode = SelectionMode.MultiExtended; 多选(可以使用Shift/Ctrl/鼠标拖选)
山寨思路
选择项目山寨
设置SelectionMode为One(单选)
添加选中事件
界面设置:
listBox添加数据
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace ListBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBox1.SelectionMode = SelectionMode.MultiExtended;
List<Class1> chkList = new List<Class1>();
for(int i = 0; i < 10; i++)
{
Class1 ck = new Class1();
ck.index = i;
ck.Name = "CheckBox" + i.ToString();
chkList.Add(ck);
}
listBox2.DisplayMember = "name";
listBox2.ValueMember = "index";
listBox2.DataSource = chkList;
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//object o = listBox1.SelectedItems;
txt1.Text = listBox1.SelectedItem.ToString();
//txt1.Focus();
//txt1.SelectAll();
}
private void textBox1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Length > 0)
{
textBox1.Text = "";
}
else
{
textBox1.Text = "√";
}
}
private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
{
txt2.Text = listBox2.SelectedItem.ToString();
int i = (int)listBox2.SelectedValue;
}
}
}
Class1.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ListBox
{
public class Class1
{
public string Name { get; set; }
public int index { get; set; }
public override string ToString()
{
return Name;
}
}
}