Hi Koppen,
Try something like this:
Code Snippet
CBO
public partial class Form4 : Form
{
public Form4()
{
InitializeComponent();
}
private void Form4_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("aa");
dt.Columns.Add("bb");
for (int i = 0; i < 20; i++)
{
dt.Rows.Add(i.ToString("00"), "bb" + i.ToString("00"));
}
this.comboBox1.DisplayMember = "bb";
this.comboBox1.ValueMember = "aa";
this.comboBox1.DataSource = dt;
this.comboBox1.SelectedIndex = -1;
this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
this.comboBox2.DisplayMember = "bb";
this.comboBox2.ValueMember = "aa";
this.comboBox2.DataSource = dt.Copy();
this.comboBox2.SelectedIndex = -1;
this.comboBox2.SelectedIndexChanged += new EventHandler(comboBox2_SelectedIndexChanged);
}
void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.comboBox2.SelectedIndex != -1)
this.comboBox1.SelectedIndex = -1;
}
void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.comboBox1.SelectedIndex != -1)
this.comboBox2.SelectedIndex = -1;
}
}
Declare a boolean at the class level, e.g.
Code Snippet
Private mIsChanging As Boolean = False
then in your 'SelectedIndexChanged' routine for each combo (if you've broken it into two routine) implement something like...
Code Snippet
If Not mIsChanging Then ' Swap the flag mIsChanging = True
' Make the change
Else ' Reverse the flag mIsChanging = False End If
|