DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ComboBoxのModifiedプロパティを取りたい

環境/言語:[Win2000,VB.NET]
分類:[.NET]

はじめまして。あきよしと言います。よろしくお願いします。

 さっそく質問なのですが、ComboBoxが変更されたかどうかを知る為には
どうすれば良いのでしょうか?

 DataGridに対して、ComboBoxを追加して使用しています。
 で、DataGridが変更されている状態で、そのDataGrid付きFormを閉じよう
とした場合、「編集されています。保存しますか?」というメッセージを
出そうとしています。
 ComboBoxにEnterとValidatedイベントを追加して、編集前後の値を取ろう
としたのですが、Enter時は、まだTextプロパティの値が更新されておらず、
また、GotFocusイベントがComboBoxにありません。
 こちらの掲示板の過去ログや、HPも拝見させて頂いたのですが、見落とした
のか、どうも見当たらないような…。見つけられませんでした。

 で、どうにも手詰まりになってしまったのです。
 よければお力をお貸しください。
>  DataGridに対して、ComboBoxを追加して使用しています。
>  で、DataGridが変更されている状態で、そのDataGrid付きFormを閉じよう
> とした場合、「編集されています。保存しますか?」というメッセージを
> 出そうとしています。

私の場合はデータソースにDataSetを使用しているのですが

private void OnClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
    if(!CheckRenew())
    e.Cancel=true;
}
public bool CheckRenew()
{
    BindingContext[ds, tablename].EndCurrentEdit();

    if(ds.HasChanges() )
    {
        MessageBox.Show("変更が保存されていません。更新かキャンセルを行ってください。","更新チェック", MessageBoxButtons.OK ,MessageBoxIcon.Information );
        return false;
    }
    return true;
}

上記のような方法でチェックしています。
DataSetでない場合にはちょっと分からないのですが。
すいません。ちょっと別件が入ってしまいまして…。
ちょっと時間がかかるのですが、後で試してみます。
その暁には、ちゃんと報告しますので。

ありがとうございました。
こんにちわ。あきよしです。試してみました。

 DataViewをDataSourceとしていた為、mbさんの方法は摘要できなかったのです
が…、DataSetを使うように変更しました。
 結果、思うような動作をするようになりました。ありがとうございます。

■蛇足
 何分、つい最近VB.NETを触りはじめ、DataSetも初めて知った次第で、ヘルプを
見ながら結構苦労しました…。
 .NETのヘルプって、なんであんなに見辛いんだろう…。
すいません。解決しました。
解決済みチェックを入れてませんでした。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板