WinForm ReturnFocus / Пауза в событии формы? - PullRequest
0 голосов
/ 10 августа 2011

извините, если заголовок очень запутанный, но я не уверен, как правильно задать этот вопрос. Прямо сейчас, с моей winform я пытаюсь сделать функцию редактирования из события двойного щелчка в моем представлении сетки данных. Когда я дважды щелкаю ячейку, появляется другая форма для редактирования пользователем. Я хочу, чтобы, когда пользователь выходил из этой формы, он автоматически обновлял то, что находится в dgv. У меня есть функция поиска, и я просто хочу снова использовать ее после выхода из этой формы. Вот код ...

        if (combo_View.Text == "Orders")
        {
            DateTime date = new DateTime();
            string PO, item, repack, UPS, wrapping, usage, price, notes, customerName;
            int inOrder, outOrder, oid, palletNum, vid, cid;
            double weight, cf;
            string myIndex = dgv_DataLookup.CurrentCell.OwningRow.Cells[16].Value.ToString();
            DataSet editSet = new DataSet();
            da.SelectCommand = new OleDbCommand("SELECT oid, orderDate, PO, itemNum, InOrder, OutOrder, Repack, UPS, Pallets, PalletWrap, PalletUse, UPSAmount, LBS, CF, NoteOrder, VendorID, CustomerID, CustomerName FROM TestQuery WHERE oid = @oid", cs);
            da.SelectCommand.Parameters.Add("@oid", OleDbType.Integer).Value = myIndex;
            editSet.Clear();
            da.Fill(editSet);
            oid = int.Parse(editSet.Tables[0].Rows[0][0].ToString());
            date = DateTime.Parse(editSet.Tables[0].Rows[0][1].ToString());
            PO = editSet.Tables[0].Rows[0][2].ToString();
            item = editSet.Tables[0].Rows[0][3].ToString();
            inOrder = int.Parse(editSet.Tables[0].Rows[0][4].ToString());
            outOrder = int.Parse(editSet.Tables[0].Rows[0][5].ToString());
            repack = editSet.Tables[0].Rows[0][6].ToString();
            UPS = editSet.Tables[0].Rows[0][7].ToString();
            palletNum = int.Parse(editSet.Tables[0].Rows[0][8].ToString());
            wrapping = editSet.Tables[0].Rows[0][9].ToString();
            usage = editSet.Tables[0].Rows[0][10].ToString();
            price = editSet.Tables[0].Rows[0][11].ToString();
            weight = double.Parse(editSet.Tables[0].Rows[0][12].ToString());
            cf = double.Parse(editSet.Tables[0].Rows[0][13].ToString());
            notes = editSet.Tables[0].Rows[0][14].ToString();
            vid = int.Parse(editSet.Tables[0].Rows[0][15].ToString());
            cid = int.Parse(editSet.Tables[0].Rows[0][16].ToString());
            customerName = editSet.Tables[0].Rows[0][17].ToString();

            Edit editForm = new Edit("ORDER", oid, date, PO, item, inOrder, outOrder, repack, UPS, palletNum, wrapping, usage, price, weight, cf, notes, vid, cid, customerName);
            editForm.Show();
            btn_Search_Click(null, null);

Что здесь происходит, так это то, что когда форма показывается, она вызывает btn_search_click, прежде чем я что-нибудь сделаю с другой формой. Мне было интересно, могу ли я как-то приостановить форму или заставить ее спать, пока я не выйду из функции editForm, и ТО не вызову функцию поиска. Пожалуйста, спросите, нужен ли вам дополнительный код или вы хотите увидеть код из других форм. Спасибо!

1 Ответ

1 голос
/ 10 августа 2011

Изменение

editForm.Show();

до

editForm.ShowDialog();

Это приостановит выполнение основной формы до закрытия editForm.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...