0

我有一个组合框,想将更改保存在数据库中。

我想要做的是,如果选择了组合框并且确实必须运行下面的代码。如果它是假的,那么它必须跳过代码并走得更远。

下面的代码正在检查是否启用了组合框。但是当我编译时,它在没有被选中时说是真的

private void Log()
{
    if (kaartburgerlijkestand.Enabled)
    {
        veranderingBurgelijkestaat();
    }
}

下面的代码是将数据保存在数据库中

private string veranderingBurgerlijkestaat()
{
    string gebruiker = curMedewerker.Behandelnaam;
    string bekeken = prodermaform.pKaart();
    string tabblad = tabControl1.SelectedTab.Text;
    string pat = CPatient.GeefPatientNaam(patient.Id);
    string wijz = "Burgerlijkestaat: " + kaartBurgerlijkestand.Text;

    CDb dcon = new CDb();

    try
    {
        if (dcon.Open())
        {
            SqlCommand cmd = new SqlCommand("INSERT INTO dbo.loggen(Gebruiker, Bekeken, Tabblad, Patientnaam, Wijziging, Datum) VALUES(@gebruiker, @bekeken, @tabblad, @pat, @wijz, @datum)", dcon.Conn);
            cmd.Parameters.AddWithValue("@gebruiker", gebruiker);
            cmd.Parameters.AddWithValue("@bekeken", bekeken);
            cmd.Parameters.AddWithValue("@tabblad", tabblad);
            cmd.Parameters.AddWithValue("@pat", pat);
            cmd.Parameters.AddWithValue("@wijz", wijz);
            cmd.Parameters.AddWithValue("@datum", DateTime.Now);
            cmd.ExecuteNonQuery();
            cmd.Dispose();
        }
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
    finally
    {
        dcon.Close();
    }

    return wijz;
}

有人可以告诉我一个例子如何做到这一点

我找到了解决方案

我做了检查

private void doCheck(object sender, EventArgs e)
{
    cmbox = false;

    if (kaartBurgerlijkestaat.Focused)
    {
        veranderingBurgerlijkestand();                
    }

    cmbox = true;

}

然后我使用了 SelectedValueChanged 事件

private void kaartBurgerlijkestand_SelectedValueChanged(object sender, EventArgs e)
{
    if (cmbox)
        doCheck(sender, e);  
}

它工作正常。

我要感谢大家对我的帮助!

4

1 回答 1

0

添加一个事件侦听器,kaartburgerlijkestand.Enabled唯一检查您的组合框是否启用选择。InitializeComponent();在您的Form.cs文件行之后添加此行

kaartburgerlijkestand.SelectedIndexChanged += new System.EventHandler
(this.kaartburgerlijkestand_SelectedIndexChanged);

还为上面的代码添加一个函数:

private void kaartburgerlijkestand_SelectedIndexChanged(object sender, EventArgs e)
    {
          veranderingBurgelijkestand();
    }
于 2012-10-15T12:44:04.803 回答