0

コンボボックスがあり、変更をデータベースに保存したいと考えています。

私がやりたいことは、コンボボックスが選択されていて、以下のコードを実行する必要がある場合です。false の場合は、コードをスキップしてさらに先に進む必要があります。

以下のコードは、コンボボックスが有効かどうかをチェックしています。しかし、私がコンパイルしているとき、選択されていない場合はtrueと言っています

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 に答える