Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 5.00
FROSTITAN
0 / 0 / 4
Регистрация: 14.08.2013
Сообщений: 48
#1

Как объединить два условия? - C#

04.03.2014, 19:50. Просмотров 2435. Ответов 10
Метки нет (Все метки)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
        {
            TextBox box = sender as TextBox;
            this.SendButton.IsEnabled = box.Text.Length > 0;
        }
 
 
 
        private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
        {
            PasswordBox box = sender as PasswordBox;
            this.SendButton.IsEnabled = box.Password.Length > 0;
        }
Чтобы выполнялось сразу два условия одновременно? а то они выполняются по раздельности =) Например если я введу логин то кнопка активна, и пароль тоже введу отдельно кнопка активна, а как сделать так, чтобы кнопка была активна если заполнено два поле а не только одно? Как это возможно объединить в 1 private void?
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 19:50
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Как объединить два условия? (C#):

Как объединить два условия с вызовом IndexOf?
У меня есть 4 условия: if (a.IndexOf("@") > -1) { } ...

Как объединить 2 условия
1 условие записывает значение в text записано слово name for (int i =...

Как объединить два объекта?
Доброго времени суток! Программа представляет собою стек, куда записываются...

Как объединить два проекта
У меня есть два проекта: Заполнение анкеты и основная программа. При выборе...

Как объединить два отсортированных массива?
int MyArr1 = new int; int MyArr2 = new int; for (int...

Как объединить два числа в одно?
К примеру есть числа 123 и 456, Как объединить эти два числа чтобы на выходе...

10
kesean
273 / 272 / 108
Регистрация: 04.09.2010
Сообщений: 638
Завершенные тесты: 1
04.03.2014, 19:58 #2
Оператор &&
0
Серж_87
1293 / 499 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
04.03.2014, 23:33 #3
FROSTITAN,
в одну процедуру поместите и все.
В самом конце свойство на кнопу наложите, которое сделает ее активной
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
04.03.2014, 23:46 #4
FROSTITAN, как выше уже сказали, назначьте один обработчик для обеих кнопок и все.
0
pokerface
201 / 166 / 48
Регистрация: 20.09.2012
Сообщений: 446
04.03.2014, 23:56 #5
C#
1
2
3
4
if(textBox1.Text!=null && passwordBox1!=null)
{
 this.SendButton.IsEnabled = true;
}
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
04.03.2014, 23:57 #6
pokerface, да зачем. Еще раз: 1 обработчик на оба текстбокса - проблема решена, даже переписывать ничего не надо.
0
pokerface
201 / 166 / 48
Регистрация: 20.09.2012
Сообщений: 446
05.03.2014, 00:08 #7
Psilon, конечно можно) но это просто ещё один вариант решения задачи)
0
FROSTITAN
0 / 0 / 4
Регистрация: 14.08.2013
Сообщений: 48
05.03.2014, 01:38  [ТС] #8
Ошибка 1 Ни одна перегрузка для "TextBox_TextChanged" не соответствует делегированному "System.Windows.RoutedEventHandler"

C#
1
2
3
4
5
6
7
        private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
        {
            if(login_txt.Text!=null && password_txt!=null)
           { 
              this.SendButton.IsEnabled = true;
           }
        }
XML
1
2
3
4
5
6
7
8
            <StackPanel VerticalAlignment="Center" Grid.Row="3" AllowDrop="True">
                <TextBox Name="login_txt" Height="35" Width="305" Margin="10" 
                         HorizontalAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Top"
                         Foreground="#d0d0d0" TextChanged="TextBox_TextChanged"/>
                <PasswordBox Name="password_txt" Height="35" Width="305" 
                         HorizontalAlignment="Center" VerticalAlignment="Top"
                         Foreground="#d0d0d0" PasswordChanged="TextBox_TextChanged"/>
            </StackPanel>
Так выдаёт ошибку;
А так нет но работают отдельно:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
        private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
        {
            TextBox box = sender as TextBox;
            this.SendButton.IsEnabled = box.Text.Length > 0;
        }
 
 
 
        private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
        {
            PasswordBox box = sender as PasswordBox;
            this.SendButton.IsEnabled = box.Password.Length > 0;
        }
XML
1
2
3
4
5
6
7
8
            <StackPanel VerticalAlignment="Center" Grid.Row="3" AllowDrop="True">
                <TextBox Name="login_txt" Height="35" Width="305" Margin="10" 
                         HorizontalAlignment="Center" TextWrapping="Wrap" VerticalAlignment="Top"
                         Foreground="#d0d0d0" TextChanged="TextBox_TextChanged"/>
                <PasswordBox Name="password_txt" Height="35" Width="305" 
                         HorizontalAlignment="Center" VerticalAlignment="Top"
                         Foreground="#d0d0d0" PasswordChanged="PasswordBox_PasswordChanged"/>
            </StackPanel>
Поправьте просто чтобы работало, оно работает в раздельности, а должно вместе =)
0
pokerface
201 / 166 / 48
Регистрация: 20.09.2012
Сообщений: 446
05.03.2014, 01:58 #9
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public Form1()
        {
            InitializeComponent();
            textBox1.TextChanged += new System.EventHandler(textBox1_TextChanged);
            textBox2.TextChanged += new System.EventHandler(textBox1_TextChanged); 
        }
.......
private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox1.Text != string.Empty && textBox2.Text != string.Empty)
            {
                button11.Enabled = true;
            }
            else
            {
                button11.Enabled = false;
            }
        }
0
Psilon
Master of Orion
Эксперт .NET
5981 / 4834 / 901
Регистрация: 10.07.2011
Сообщений: 14,439
Записей в блоге: 5
Завершенные тесты: 4
05.03.2014, 02:06 #10
Лучший ответ Сообщение было отмечено FROSTITAN как решение

Решение

pokerface, это не формы.

FROSTITAN, в принципе можно было бы написать для них один обработчик, но тут уж действительно проще написать 2 разных, а в них:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
bool HasLoginPassword
{
   get { return login_txt.Text.Length > 0 && password_txt.Password.Length > 0; }
}
 
        private void TextBox_TextChanged(object sender, TextChangedEventArgs e) 
        {
           SendButton.IsEnabled = HasLoginPassword;
        }
 
 
 
        private void PasswordBox_PasswordChanged(object sender, RoutedEventArgs e)
        {
           SendButton.IsEnabled = HasLoginPassword;
        }
1
FROSTITAN
0 / 0 / 4
Регистрация: 14.08.2013
Сообщений: 48
05.03.2014, 02:22  [ТС] #11
Psilon, Огромное вам спасибо, всё работает на ура =)
0
05.03.2014, 02:22
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 02:22
Привет! Вот еще темы с решениями:

Как использовать два условия в конструкции if?
Подскажите, возможно ли в цикле if использовать два condition'a. Что то вроде:...

Как объединить два похожих метода, инвертировать < > и свойства
Столкнулся с проблемой соединения двух методов, точнее раздвоения приложения на...

Два условия ( if else)
Добрый день. Проблема в создании двойного условия. Подскажите пожалуйста. Вот...

Объединить два изображения
Есть два изображения типа image1.jpg image2.jpg как можно их &quot;склеить&quot;, чтобы...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru