Member 12770648 Ответов: 1

Возникли проблемы с тем, чтобы правильно сфокусироваться


Программа не работает

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

Возникли проблемы со следующими кодами



if (string.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE2"]. Value.Метод toString()) ||
строка.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE4"]. Value.Метод toString()) ||
строка.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE3"]. Value.Метод toString()) ||
!строку.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE1"]. Value.Метод toString())) ;
{
txt_Resp_time2.Текст = Программа Sqlcmd.Параметры["@ERESPTIME2"].Значение.Метод toString();
txt_Response2.Текст = Программа Sqlcmd.Параметры["@ERESPONSE2"].Значение.Метод toString();
txt_Resp_time2.Включен= истина;
txt_Response2.Включен = истина;
txt_Response2.Сосредоточить();

txt_Resp_time4.Включен = ложь;
txt_Response4.Включен = ложь;
txt_Resp_time3.Включен = ложь;
txt_Response3.Включен = ложь;
txt_Resp_time1.Включен = ложь;
txt_Response1.Включен = ложь;
}


if (string.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE1"]. Value.Метод toString()) ||
строка.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE4"]. Value.Метод toString()) ||
строка.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE3"]. Value.Метод toString()) ||
строка.IsNullOrEmpty(SqlCmd. Parameters ["@ERESPONSE2"]. Value.Метод toString())) ;
{
txt_Resp_time1.Текст = Программа Sqlcmd.Параметры["@ERESPTIME1"].Значение.Метод toString();
txt_Response1.Текст = Программа Sqlcmd.Параметры["@ERESPONSE1"].Значение.Метод toString();
txt_Resp_time1.Включен= истина;
txt_Response1.Включен = истина;
txt_Response1.Сосредоточить();

txt_Resp_time4.Включен = ложь;
txt_Response4.Включен = ложь;
txt_Resp_time3.Включен = ложь;
txt_Response3.Включен = ложь;
txt_Resp_time2.Включен = ложь;
txt_Response2.Включен = ложь;
}

Что я уже пробовал:

Это коды, которые я пробовал и не смог решить

Richard MacCutchan

Решить что?

1 Ответов

Рейтинг:
1

Steve44

Пожалуйста, опишите еще несколько деталей вашего вопроса:
Это ваш фактический код, скопированный из вашей программы?
Каково значение ваших параметров ERESPONSE1-4?
Какое поведение вы видите?
Какого поведения вы ожидаете?
Является ли проблемой только фокус или также включенные / отключенные элементы управления?

Без этой информации трудно предложить решение, поскольку мы не читаем мысли.

Однако, если это ваша программа, Я вижу проблему:

if (string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE1"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE4"].Value.ToString()) || 
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE3"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE2"].Value.ToString())) ; 
{

If содержит 4 строки условий, за которыми следует точка с запятой ";"
Это завершает ваше if с пустым телом, и следующий блок выполняется независимо от оценки условий if.
Это эквивалентно этому:
if (string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE1"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE4"].Value.ToString()) || 
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE3"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE2"].Value.ToString()))
{
}

{

Поэтому, если ваше поведение всегда таково, что Поля 1 включены, а все остальные отключены, попробуйте удалить ";" сразу после if и посмотрите, решит ли это вашу проблему.
if (string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE1"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE4"].Value.ToString()) || 
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE3"].Value.ToString()) ||
string.IsNullOrEmpty(SqlCmd.Parameters["@ERESPONSE2"].Value.ToString()))
{