Ejemplo n.º 1
0
        /// <summary>Выбор строки или строк</summary>
        public void OnSelectFromList(EventArgs e = null)
        {
            if (!(formModes.HasFlag(FormModes.GetResult) &&
                  (ActiveGrid.Name.Equals(SelectionGridName) || string.IsNullOrWhiteSpace(SelectionGridName)) &&
                  ActiveGrid.Focused
                  ))
            {
                return;
            }

            object selectedObject = null;
            var    checkedIdx     = ActiveGrid.GetCheckedRowsIdx();

            if (formModes.HasFlag(FormModes.GetMultiResult))
            {
                if (checkedIdx.Count > 0)
                {
                    selectedObject = checkedIdx.Select(r => ActiveGrid.GetRowObject(r)).ToList();
                }
                else
                {
                    selectedObject = new List <object> {
                        ActiveGrid.GetRowObject()
                    }
                };
            }
            else
            {
                selectedObject = CtrlsProc.PrepareParams(ActiveGrid.GetRowObject());
            }

            // сбросить дальнейшую обработку нажатий
            var keyEvt = (e as KeyEventArgs);

            if (keyEvt != null)
            {
                keyEvt.Handled = true;
            }

            var ea = new SelectFromListEventArgs()
            {
                SelectedObject = selectedObject, Handled = false
            };

            SelectFromList?.Invoke(this, ea);

            // стандартный возврат результата и выход, если это не отменили в обработчике события
            if (!ea.Handled)
            {
                Ctx.TransferObject = ea.SelectedObject;
                if (Ctx.TransferObject == null)
                {
                    Loger.SendMess("Не получен выбранный объект!", true);
                }
                DialogResult = Ctx.TransferObject != null && Modal ? DialogResult.OK : DialogResult.Cancel;
                Close();
            }
        }
Ejemplo n.º 2
0
        private void FConnect_SelectClick(object sender, SelectFromListEventArgs e)
        {
            var res     = dataList1.GetRowObject();
            var connStr = (string)res?.GetType().GetProperty("connStr").GetValue(res);
            var conn    = new SqlConnection(connStr);

            if (!Ctx.CheckConnection(conn))
            {
                e.Handled    = true;
                DialogResult = DialogResult.Cancel;
            }
            else
            {
                Ctx.Conn         = conn;
                e.SelectedObject = connStr;
                DialogResult     = DialogResult.OK;
            }
        }