我有一个列表框,里面装有数据库中的项目
private void listBox1_SelectedIndexChanged(object sender,
EventArgs e)
{
textBox_fn.Text = string.Empty;
textBox_ln.Text = string.Empty;
if (conn.State != ConnectionState.Open) { conn.Close();
conn.Open(); }
OleDbCommand cmd = conn.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "SELECT * FROM [table1] WHERE firstn='" +
listBox1.SelectedItem.ToString() + "'";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
textBox_fn.Text = dr["firstn"].ToString();
textBox_ln.Text = dr["lastn"].ToString();
}
conn.Close();
}
我想在选择项目之前插入代码。所以我将MessageBox与是/否一起使用。
如果是->允许在列表框中选择另一个项目。
如果否->不执行任何操作,则我想保留当前项目(甚至不要重新选择同一项目,它可能会重置关联的文本框)
我尝试过,但是它选择了消息框之前的项目
private void listBox1_Click(object sender, EventArgs e)
{
DialogResult dialogr = MessageBox.Show("Select item ? ", "", MessageBoxButtons.YesNo);
switch (dialogr)
{
case DialogResult.Yes:
// ok select another item
break;
case DialogResult.No:
// Do not select another item, stay on the current one
break;
}
}
我尝试过使用listBox1_Enter,但它也会选择项目
因此,是否可以在选择项目之前捕获点击?