#vb.net
#vb.net
Вопрос:
Мне просто было интересно, возможно ли это. Я пытаюсь проверить форму, которая должна быть заполнена пользователями, и когда требуемый раздел не заполнен, я увеличиваю
Количество ошибок = 1
переменная, чтобы показать, что ошибки произошли внутри программы, затем я также устанавливаю
ErrorArray()
независимо от соответствующего номера поля, теперь у меня есть 0-12 (13 полей). То, что я также сделал, озаглавило метки, которые связаны со всеми этими полями, чтобы соответствовать значению ErrorArray(), которое может быть установлено, например.
PatLabel0 PatLabel1 и т.д.
Что я пытаюсь сделать, так это перебирать содержимое массива, в зависимости от того, какие значения ErrorArray() были установлены, чтобы перейти и установить для соответствующего свойства fontcolor этой метки значение red, чтобы показать, что теперь их нужно заполнить. Это то, что у меня есть, но Visual Studio не позволяет мне использовать итерацию через цикл в качестве ссылки на изменение свойств. Может кто-нибудь указать мне правильное направление, чтобы попытаться разобраться в этом, или, по крайней мере, сказать мне, что еще я мог бы сделать. Кажется, что выполнение 20 инструкций if ….then ….else …. с 2-3 строками в каждой из них является избыточным, когда 1 функциональная строка может выполнять ту же работу. Это то, что у меня есть.
for i = 0 to UBound(ErrorArray(12))
if(ErrorArray(i) = "*")then
PatLabel(i).forecolor = color.red
else
PatLabel(i).forecolor = color.black
end if
next
это в основном все, что я ищу изначально, но я не могу этого сделать.
Заранее спасибо за любую помощь, и я знаю, что у меня есть еще один похожий пост, в котором задается вопрос, просто подумал, что он, возможно, был озаглавлен и плохо объяснен.
-NickG
Комментарии:
1. Я знаю, что пишу в VB.Net , но, честно говоря, я не уверен, что это вообще правильный синтаксис для VB.Net , я кодировал на 99% PHP в течение последних 18 месяцев и даже не уверен, с чего начать переход, если у вас есть какие-либо обучающие советы для меня, я быбудьте рады принять это
2. Но зачем обозначать вопрос как C #, если вы не используете C #?
3. извините, в нем говорится, что я пометил его как vb.net на моей странице здесь, очевидно, это была ошибка
4. Нет, вы пометили его как C #. robyaw отредактировал теги, чтобы изменить их на VB…
Ответ №1:
Понятия не имею, что означает ваш код, но вот немного C #, чтобы сделать трюк…
for(int i = 0; i < ErrorArray.Length; i )
{
if(ErrorArray[i] == "*")
{
PatLabel(i).ForeColor = Color.Red;
}
else
{
PatLabel(i).ForeColor = Color.Black;
}
}
предполагается, что ErrorArray — это строка [] или что-то в этом роде (список и т. Д.), И что PatLabel — это функция, которая принимает позицию индекса для элемента управления и возвращает элемент управления, который нужно изменить.
Если PatLabel является массивом элементов управления, вы должны изменить свойство ForeColor следующим образом…
PatLabel[i].ForeColor = Color.Red;
Пример функции, которая может задавать свойство элемента управления с заданным идентификатором номера…
void SetControlColor(int i, Color color)
{
Label label = Panel1.Controls["PatLabel" i] AS Label;
if(label != null)
{
label.ForeColor = color;
}
}
затем вы можете вызвать функцию из приведенного выше цикла for, например…
for(int i = 0; i < ErrorArray.Length; i )
{
if(ErrorArray[i] == "*")
{
SetControlColor(i, Color.Red);
}
else
{
SetControlColor(i, Color.Black);
}
}
ПРИМЕЧАНИЕ: этот вопрос был помечен как C #, когда я писал начальные примеры кода
Комментарии:
1. Извините, я действительно новичок в использовании VB, я всегда программирую на PHP, и это не совсем то же самое, это точно. PatLabel — это просто то, что я назвал всеми метками в форме, чтобы соответствовать любой точке в массиве ErrorArray[], установленной в случае ошибки. В основном что-то вроде PatLabel0 PatLabel1 PatLabel2 и т. Д. — Это имена меток в форме, если пользователь отправляет форму, не заполняя соответствующее текстовое поле для этих меток, чем я хочу изменить свойство шрифта на красный, вот и все.
2. Если бы я должен был создать функцию с именем PatLabel(), мог бы я просто передать значение i и в зависимости от значения i присвоить свойству ForeColor соответствующую метку?
3. @NickG, я обновил свой ответ, включив в него пример функции. К сожалению (для вас) Я не делаю VB. Net итак, мой код написан на C # — вам придется попытаться преобразовать его, если вы хотите использовать что-либо из этого (есть онлайн-конвертеры, если вы выполняете поиск в Google)
4. спасибо за ваш образец, я буду работать над преобразованием и сообщу вам, как я с этим справляюсь, извините за неправильную пометку вопроса изначально, и спасибо вам за то, что вы правильно пометили его и помогли мне с этой проблемой.