private void butAdd_Click(object sender, EventArgs e)
        {
            FormProvEdit FormPE = new FormProvEdit();

            FormPE.ProvCur       = new Provider();
            FormPE.ProvCur.IsNew = true;
            Provider provCur = new Provider();

            if (gridMain.SelectedIndices.Length > 0)                                                                     //place new provider after the first selected index. No changes are made to DB until after provider is actually inserted.
            {
                FormPE.ProvCur.ItemOrder = ((Provider)gridMain.ListGridRows[gridMain.SelectedIndices[0]].Tag).ItemOrder; //now two with this itemorder
            }
            else if (gridMain.ListGridRows.Count > 0)
            {
                FormPE.ProvCur.ItemOrder = ((Provider)gridMain.ListGridRows[gridMain.ListGridRows.Count - 1].Tag).ItemOrder + 1;
            }
            else
            {
                FormPE.ProvCur.ItemOrder = 0;
            }
            FormPE.IsNew = true;
            FormPE.ShowDialog();
            if (FormPE.DialogResult != DialogResult.OK)
            {
                return;
            }
            provCur = FormPE.ProvCur;
            //new provider has already been inserted into DB from above
            Providers.MoveDownBelow(provCur);            //safe to run even if none selected.
            Cache.Refresh(InvalidType.Providers);
            FillGrid();
        }
        private void gridMain_CellDoubleClick(object sender, ODGridClickEventArgs e)
        {
            Provider     selectedProv = (Provider)gridMain.ListGridRows[e.Row].Tag;
            FormProvEdit FormPE       = new FormProvEdit();

            FormPE.ProvCur = selectedProv;
            FormPE.ShowDialog();
            if (FormPE.DialogResult == DialogResult.OK)
            {
                FillGrid();
            }
        }