複数のテキストボックスがあるフォームとデータテーブルがあり、データテーブルはテキストボックスにバインドされており、データテーブルのRowChangedイベントを処理しています。フォームがロードされたときRowChangedイベントは二回しか呼ばれているがTextboxバインディング更新イベント
、DataTableの負荷から罰金、私はテキストボックス内のテキストを変更したときに何のイベントはありませんテキストボックスにそのデータ(つ以上のテキストボックスがあります)トリガーされた。ただし、データテーブルから直接データを表示すると、データが更新されたことが示されます。
コード:
private Clients.DataSetClients.ClientsDataTable dtClients = new DataSetClients.ClientsDataTable();
private Clients.DataSetClientsTableAdapters.ClientsTableAdapter taClients = new DataSetClientsTableAdapters.ClientsTableAdapter();
private void ClientsEdit_Load(object sender, EventArgs e)
{
dtClients.RowChanged += new DataRowChangeEventHandler(dtClients_RowChanged);
taClients.FillByID(dtClients, ClientID);
textForename.DataBindings.Add("Text", dtClients, "Forename", true, DataSourceUpdateMode.OnPropertyChanged);
//.......
// etc
//.......
textEmail.DataBindings.Add("Text", dtClients, "Email", true, DataSourceUpdateMode.OnPropertyChanged);
}
void dtClients_RowChanged(object sender, DataRowChangeEventArgs e)
{
MessageBox.Show("dtClients_RowChanged");
}
private void simpleButton1_Click(object sender, EventArgs e)
{
MessageBox.Show(dtClients.Rows[0]["Email"].ToString());
}
私はちょうど同じことを試みたが、バインディングの.Formatイベントを使用していた。私はより適しているように.BindingCompleteを使用します。助けてくれてありがとう! – baked