Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416

Как изменить свойство Visible/Enable у кнопки на форме по команде из UserControl и почему не срабатывает логическое И?

18.03.2019, 22:58. Показов 3133. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Вроде уже не нуб в шарпе, но тут с элементарным запарился. Вопросов 2 :

1. Есть форма, кот-я работает с одной БД.
На ней 4 кнопки - подключиться/считать всю БД в dataGirdView(button1), добавить строку в БД, удалить строку и обновить параметры строки.

Для каждой кнопки выходит свой UserControl.
Логично - при нажатии на одну из 3х кнопок - скрываю все 3.
Когда UserControl сделает свое дело/пользователь нажмет отмену - контрол удаляется так :
C#
1
2
Controls.Remove(this);
Dispose();
Хочу чтобы он и 3 скрытые кнопки показал после своего ухода, но фигушки мне.

То кнопку на форме сделал публичной и пытался показать ее из кода контрола так
C#
1
new admin_panel().btAdd.Visible = true;
, то сделал публичный метод в коде формы с такой же функцией, то в этом публичном методе сделал вызов
C#
1
button1.PerformClick()
- полный игнор свойств и Visible, и Enable.

Самое интересное -
C#
1
buton1.PerformClick()
выполняет нажатие реальной кнопки button1.
Если нажать на эту кнопку на форме - она выполняет то, что расписано в ее обработчике, то есть меняет свойства трех кнопок.

Я уже не представляю в чем тут может быть дело


2. Есть условие на внесение строки в мою крошечную БД - если все 4 поля (значения для 4 столбцов) заполнены - отправляю в БД, если нет - сообщаю с помощью MessageBox.
Но логическое И тоже игнорится.
Вот код :
Кликните здесь для просмотра всего текста
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 btAdd_Click(object sender, EventArgs e)
        {
            if (textBox1.Text != null && textBox2.Text != null && comboBox1.Text != null && textBox3.Text != null)
            {
                if (File.Exists(wh.fe_transfer))
                {
                    try
                    {
                        ex.sqlite_non(wh.cs_transfer, "INSERT INTO table ('gp_id', 'otdel', 'role', 'nick') VALUES ('" + textBox1.Text + "', '" + textBox2.Text + "', '" + comboBox1.Text + "', '" + textBox3.Text + "')");
                        new admin_panel().EnableBt();
                        Controls.Remove(this);
                        Dispose();
                    }
                    catch
                    {
                        MessageBox.Show("Не удалось добавить отдел(");
                        new admin_panel().EnableBt();
                        Controls.Remove(this);
                        Dispose();
                    }
                }
                else
                {
                    MessageBox.Show("Файл transfer.db не найден!");
                    new admin_panel().EnableBt();
                    Controls.Remove(this);
                    Dispose();
                }
            }
            else MessageBox.Show("Заполнены не все поля!");


Специально нажимаю на [отправить в БД] при пустых textBox-ах и выходит ошибка "Файл transfer.db не найден!"

Ребят, я ору просто от результатов. Надеюсь подскажите)
Если что - ПК перезагружал, тоже самое.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.03.2019, 22:58
Ответы с готовыми решениями:

Как из ViewModel UserControl'a изменить свойство в ViewModel главного окна?
Недавно начал попытки создавать приложение WPF с применением MVVM, и у меня возник вопрос, который не даёт мне продвигаться в разработке...

Visible и Enable в WPF
Переписываю программу с винформы на WPF и споткнулся там, где казалось бы все должно быть понятно. button2.Visible = true; ...

Как изменить свойство Location у кнопки
Следующий код не срабатывает: button2.Location.X = 55; Как писать?

2
228 / 165 / 110
Регистрация: 09.11.2015
Сообщений: 454
18.03.2019, 23:13
Лучший ответ Сообщение было отмечено MIRAMIX как решение

Решение

MIRAMIX, 2. Свойство Text пустого текстбокса есть "", а не null
C#
1
if (textBox1.Text != "" && textBox2.Text != "" && comboBox1.Text != "" && textBox3.Text != "")
Добавлено через 2 минуты
Не заметил, что есть ComboBox. Тогда
C#
1
comboBox1.SelectedIndex != -1
1
#MRoose
 Аватар для MIRAMIX
8 / 9 / 3
Регистрация: 22.02.2013
Сообщений: 416
19.03.2019, 12:13  [ТС]
Ellizio, Не ожидал))
Спасибо, помогло.

Теперь бы еще с контролами понять...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.03.2019, 12:13
Помогаю со студенческими работами здесь

Не срабатывает свойство MinButton/MaxButton на форме
Добрый день! Имеется необходимость оставить на форме кнопки свернуть/развернуть, но сделать неактивной кнопку закрыть. У формы устанавливаю...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru