Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121

Одна форма - в зависимости от нажатия кнопки - несколько действий

20.04.2021, 23:36. Показов 2757. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ребят, всем привет.
Подскажите, пожалуйста, как можно реализовать следующий процесс:
имеется форма (форма_1) на ней две кнопки: кнопка "добавить" и кнопка "редактировать". При любом из двух нажатии выскакивает форма с полями (форма_2).
Если при нажатии "добавить" - форма с пустыми полями, предназначенные для заполнения, то при нажатии "редактировать" - автоматически вносятся данные выбраной строки для редактирования.
Соответственно, на форме_2 одна кнопка "Сохранить".
Вот как, в зависимости от предыдущего нажатия, направить следующий алгоритм: или сохранить в БД или редактировать?
Речь идёт о БД Access и DataGridView.
Соответственно, должно выполниться или INSERT или UPDATE.
Пытался запомнить переменными,типа при нажатии "добавить" - i=1, при нажатии "редактировать" - i=2. И потом уже на форме_2 при нажатии сохранить так: if i=1, то INSERT esle if =2, то UPDATE. К сожалению, не выходит
Буду искренне безмерно счастлив и рад любой помощи.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.04.2021, 23:36
Ответы с готовыми решениями:

Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма
Форма авторизации - вне зависимости от выбранного пользака, открывается одна и та же форма Есть два пользака - главбух и ведущий бух В...

Одна форма для нескольких разных действий
Доброго времени суток! Вот в чем вопрос: в программе нужно рассчитать несколько параметров в отдельном окне, и на все параметры одна...

Выполнение действий после нажатия кнопки
у меня есть html файл и php файл с обработчиком событий внутри!!! В html файле я добавил кнопку!!! Как сделать что бы при нажатии этой...

27
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121
22.04.2021, 11:49  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от gegbot Посмотреть сообщение
ну при таком коде немудрено
C#
1
2
3
4
5
6
7
8
if (mouse)
{
..... INSERT TO...
}
else 
{
.... UPDATE....
}
Немного перепутал, второе условие (mouse ==false).
А где тогда проверка происходит, было ли true или false?
0
68 / 56 / 15
Регистрация: 30.01.2020
Сообщений: 332
22.04.2021, 11:55
Цитата Сообщение от Труляля Посмотреть сообщение
А где тогда проверка происходит, было ли true или false?
оператор if сравнивает значение в скобках с true
0
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121
22.04.2021, 12:07  [ТС]
Цитата Сообщение от gegbot Посмотреть сообщение
оператор if сравнивает значение в скобках с true
Спасибо. Попробую вечером и отпишусь.
0
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121
22.04.2021, 19:07  [ТС]
Цитата Сообщение от gegbot Посмотреть сообщение
оператор if сравнивает значение в скобках с true
К сожалению, не помогло.
На главной форме:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
public bool button=false; //пробовал и просто писать bool button
private void yt_Button_mf_add_Click(object sender, EventArgs e)
        {
            DialogToMainForm dtmf_add = new DialogToMainForm();
            dtmf_add.Owner = this;
            dtmf_add.ShowDialog();
            button = true;
        }
private void yt_Button_mf_edit_Click(object sender, EventArgs e)
        {
            try
            {
                if (dataGridView_mf.SelectedRows.Count != 1)
                {
                    MessageBox.Show("Выберите ТОЛЬКО одну строку!", "Предупреждение!");
                    return;
                }
                int index = dataGridView_mf.SelectedRows[0].Index;
                if (dataGridView_mf.Rows[index].Cells[0].Value == null && dataGridView_mf.Rows[index].Cells[1].Value == null &&
                        dataGridView_mf.Rows[index].Cells[2].Value == null)
                {
                    MessageBox.Show("Выбрана пустая строка", "Предупреждение!");
                    return;
                }
                else
                {
                    dtmf_edit.Show();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            button = false;
        }
На второй форме:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
private void yt_Button_dtmf_save_Click(object sender, EventArgs e)
        {
            try
            {
                MainForm mf = (MainForm)this.Owner;
                if (mf.button)
                {
                    String connectionString = @"provider = Microsoft.Jet.OLEDB.4.0; Data Source = doc.mdb"; 
                    OleDbConnection dbConnection = new OleDbConnection(connectionString);
                    dbConnection.Open();
                    String query = "INSERT INTO [table] VALUES (" + id + ", '" + balance + "', '" + note + "')"; //запрос
                    OleDbCommand dbComand = new OleDbCommand(query, dbConnection); //команда
                    if (dbComand.ExecuteNonQuery() != 1)
                        MessageBox.Show("Ошибка выполнение запроса", "Предупреждение");
                    else
                        MessageBox.Show("Выполнено!", "Результат выполнения");
                    mf.tableTableAdapter.Fill(mf.doc.table);
                    dbConnection.Close();
                    this.Close(); 
                }
                else
                {
                    MessageBox.Show("ddfff"); //пока для примера второе действие написал, а так тут будет редактирование
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Как быть с этим всем?
Миниатюры
Одна форма - в зависимости от нажатия кнопки - несколько действий  
0
68 / 56 / 15
Регистрация: 30.01.2020
Сообщений: 332
23.04.2021, 08:59
Труляля, во второй кнопке вы не присваиваете Owner
0
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121
23.04.2021, 09:16  [ТС]
Цитата Сообщение от gegbot Посмотреть сообщение
Труляля, во второй кнопке вы не присваиваете Owner
Написал. Бесполезно. Выполняется лишь второе действие - MessageBox.Show, независимо от значения mouse true или false.
0
68 / 56 / 15
Регистрация: 30.01.2020
Сообщений: 332
23.04.2021, 09:19
Цитата Сообщение от Труляля Посмотреть сообщение
C#
1
2
dtmf_add.ShowDialog();
button = true;
потому что вы присваиваете true после того как вторая форма закрывается
поменяйте местами эти строки
1
0 / 0 / 0
Регистрация: 30.12.2014
Сообщений: 121
23.04.2021, 09:36  [ТС]
Цитата Сообщение от gegbot Посмотреть сообщение
потому что вы присваиваете true после того как вторая форма закрывается
поменяйте местами эти строки
Казалось бы, небольшой нюанс, а меняет многое.
Огромнейшее и искреннее Вам спасибо за помощь. Всё заработало так, как надо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2021, 09:36
Помогаю со студенческими работами здесь

Выполнение действий во время нажатия кнопки
В чем суть проблема. Простенькая программка с одним классом, весь код в Мейне. Одна кнопка, 2 текстовых поля, 5 лейблов. При нажатии...

Несколько действий одной кнопки
Привет всем! подскажите пожалуйста как этот код сделать покороче: begin if Button1.Tag=0 then begin ...

Несколько действий для одной кнопки
Добрый день! Нужна ваша помощь! Написал код, по которому картинка вставляется в ячейку (0,0) Stringgrida! А в (0,1) не хочет((( В Tag...

Google SpreadSheets: Одна форма на несколько таблиц
Просьба подсказать, можно ли реализовать, и если да, то как, следующую задумку: Есть гугл форма, там указываем пользователя, и допустим...

Загрузка разных таблиц в зависимости от нажатия кнопки
Имеется 2 вкладка, нужно сделать так чтобы при нажатии разные вкладки, загрузились соответствующая HTML таблица. Вкладка такого вида: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
Хитросплетение родственных связей пантеона греческих богов.
russiannick 14.05.2026
Однооконник, позволяющий узреть и изучить отдельных героев древней Греции. <!DOCTYPE html> <html lang="ru"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible". . .
[golang] Угол между стрелками часов
alhaos 12.05.2026
По заданным значениям часа и минуты необходимо определить значение меньшего угла между стрелками аналогового циферблата часов. import "math" func angleClock(hour int, minutes int) float64 { . . .
Debian 13: Установка Lazarus QT5
ВитГо 09.05.2026
Эта инструкция моя компиляция инструкций volvo https:/ / www. cyberforum. ru/ blogs/ 203668/ 10753. html и его же старой инструкции по установке Lazarus с gtk2. . .
Нейросеть на алгоритме "эстафета хвоста" как перспектива.
Hrethgir 06.05.2026
На десерт, когда запущу сервер. Статья тут https:/ / habr. com/ ru/ articles/ 1030914/ . Автор я сам, нейросеть только помогает в вопросах которые мне не известны - не знаю людей которые знали-бы. . .
Асинхронный приём данных из COM-порта
Argus19 01.05.2026
Асинхронный приём данных из COM-порта Купил на aliexpress термопринтер QR701. Он оказался странным. Поключил к Arduino Nano. Был очень удивлён. Наотрез отказывается печатать русские буквы. Чтобы. . .
попытка написать игровой сервер на C++
pyirrlicht 29.04.2026
попытка написать игровой сервер на плюсах с открытым бесконечным миром. возможно получится прикрутить интерпретатор питон для кастомизации игровой логики. что есть на текущий момент:. . .
Контроль уникальности выбранного документа-основания при изменении реквизита
Maks 28.04.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРемонтСпецтехники", разработанного в КА2. Задача: уведомлять пользователя, если указанная заявка (документ-основание). . .
Благородство как наказание
Maks 24.04.2026
У хорошего человека отношения с женщинами всегда складываются трудно. А я человек хороший. Заявляю без тени смущения, потому что гордиться тут нечем. От хорошего человека ждут соответствующего. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru