private void gridControl1_DoubleClick(object sender, EventArgs e) { try { int focused = this.gridViewInvRem.FocusedRowHandle; MDataSet.RemainsRow _rem = this.gridViewInvRem.GetDataRow(this.gridViewInvRem.FocusedRowHandle) as MDataSet.RemainsRow; _mainForm.RefreshData(_rem); if (_rem != null) { MDataSet.InvoiceDetailRow _newRow = (this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow; InvoiceDetailAdd _invoceDetailAdd = new InvoiceDetailAdd(_newRow, _rem, _mainForm); FormDialog formDialog = new FormDialog(); formDialog.Text = "Добавить строку"; formDialog.panel.Controls.Add(_invoceDetailAdd); if (DialogResult.OK == formDialog.ShowDialog(this)) { this.invoiceDetailBindingSource.EndEdit(); this.SaleInvoiceDetail(_newRow); _mainForm.RefreshData(_newRow); } else { this.gridViewInvRem.BeginDataUpdate(); this.invoiceDetailBindingSource.CancelEdit(); _rem.RejectChanges(); this.gridViewInvRem.EndDataUpdate(); this.gridRem.Focus(); this.gridViewInvRem.FocusedRowHandle = focused; return; } _invoceDetailAdd.Dispose(); GC.Collect(); } } catch (Exception err) { MessageBox.Show(err.Message); MainForm.Log("gridControl1_DoubleClick " + err.Message); } }
private void btAdd_Click(object sender, EventArgs e) { /*создать новую строку, указатель на нее в дл¤ редактировани¤*/ MDataSet.RemainsRow _rems = this.gridViewRemainsInvDetEdt.GetDataRow(this.gridViewRemainsInvDetEdt.FocusedRowHandle) as MDataSet.RemainsRow; if (_rems == null) { return; } FormDialog _formDialog = new FormDialog(); _formDialog.AcceptButton = _formDialog.btOk; _formDialog.Text = "ƒобавить строку"; MDataSet.InvoiceDetailRow sourceRow = ((this.invoiceDetailBindingSource.AddNew() as DataRowView).Row as MDataSet.InvoiceDetailRow); MDataSet.RemainsRow remainsRow = ((this.RemainsBindingSource.CurrencyManager.Current as DataRowView).Row as MDataSet.RemainsRow); MDataSet.ProductRow _productRow = (this.productBindingSource.DataSource as MDataSet.ProductDataTable).FindByID(remainsRow.ProductRef); if ((sourceRow != null) & (remainsRow != null)) { InvoiceDetailRowAdd _invoiceDetailRowAdd = new InvoiceDetailRowAdd(sourceRow, remainsRow, _productRow); _formDialog.panel.Controls.Add(_invoiceDetailRowAdd); if (DialogResult.OK == _formDialog.ShowDialog(this)) { remainsRow.AcceptChanges(); this.invoiceDetailBindingSource.EndEdit(); } else { this.invoiceDetailBindingSource.CancelEdit(); remainsRow.RejectChanges(); } } }