private DataTable m_BoundTable = (DataTable)this.DataBindings[0].DataSource; private string m_BoundColumn = this.DataBindings[0].DataBindings[0].BindingMemberInfo.BindingMember; private string m_BoundProperty = this.DataBindings[0].PropertyName; private CurrencyManager oCurrency = (CurrencyManager)this.BindingContext[m_BoundTable]; public virtual void ForceBind() { if (this.DataBindings.Count == 0) return; int nRow = -1; if (this.m_BoundTable != null && this.m_BoundColumn != "") { if (this.oCurrency != null) nRow = this.oCurrency.Position; if (nRow >= 0) { DataRow row = this.m_BoundTable.DefaultView[nRow].Row; object oValue = row[this.m_BoundColumn]; switch (this.m_BoundProperty) { case "Text" : oValue = this.Text; break; case "Tag" : oValue = this.Tag; break; } if (oValue == null) oValue = DBNull.Value; System.RuntimeTypeHandle handle = System.Type.GetTypeHandle(this); System.Type eType = System.Type.GetTypeFromHandle(handle); ConvertEventArgs e = new ConvertEventArgs(oValue, eType); this.ParseHandler(this, e); if (row[this.m_BoundColumn] != e.Value) { try { row[this.m_BoundColumn] = e.Value; } catch (Exception) { } this.OnValidated(new EventArgs()); } } } }~~Bonnie