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

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

04.03.2014, 19:50. Просмотров 2609. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

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

10
kesean
275 / 274 / 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
6000 / 4850 / 902
Регистрация: 10.07.2011
Сообщений: 14,460
Записей в блоге: 5
Завершенные тесты: 4
04.03.2014, 23:46 4
FROSTITAN, как выше уже сказали, назначьте один обработчик для обеих кнопок и все.
0
pokerface
202 / 167 / 48
Регистрация: 20.09.2012
Сообщений: 450
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
6000 / 4850 / 902
Регистрация: 10.07.2011
Сообщений: 14,460
Записей в блоге: 5
Завершенные тесты: 4
04.03.2014, 23:57 6
pokerface, да зачем. Еще раз: 1 обработчик на оба текстбокса - проблема решена, даже переписывать ничего не надо.
0
pokerface
202 / 167 / 48
Регистрация: 20.09.2012
Сообщений: 450
05.03.2014, 00:08 7
Psilon, конечно можно) но это просто ещё один вариант решения задачи)
0
FROSTITAN
0 / 0 / 0
Регистрация: 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
202 / 167 / 48
Регистрация: 20.09.2012
Сообщений: 450
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
6000 / 4850 / 902
Регистрация: 10.07.2011
Сообщений: 14,460
Записей в блоге: 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 / 0
Регистрация: 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

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

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

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


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

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

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