Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: перебрать контролы в vb.net? Добавлено: 24.11.07 22:00  

Автор вопроса:  zaitsman | Web-сайт: zaitsman.mine.nu | ICQ: 61452976 
На форме есть 5 текстбоксов - textbox1,textbox2...textbox5
при выполнении кода все пять должны получить текст Ура!
Как это написать?

public a as integer
for a=1 to 5
textbox(a).text="Ура!"'<---вот эта строчка неясна, как писать textbox(a)? textboxa или textbox[a]? или как?
a=a+1
next

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 zaitsman



ICQ: 61452976 

Вопросов: 2
Ответов: 12
 Web-сайт: zaitsman.mine.nu
 Профиль | | #1
Добавлено: 24.11.07 22:17
ок, работает методом создания dictionary(of integer,system.windows.forms.textbox)
потом добавления всех текстбоксов и перебором по этому словарю.
Однако для всех контролов которые у меня есть (40 штук), принадлежащих разным классам это дюже геморно.
Неужели нету более простого пути????

Ответить

Номер ответа: 2
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #2
Добавлено: 25.11.07 07:39
На форме есть 5 текстбоксов - textbox1,textbox2...textbox5
при выполнении кода все пять должны получить текст Ура!
Как это написать?

For i As Integer = 0 To Me.Controls.Count - 1
  If Me.Controls(i).GetType() Is GetType(TextBox) Then
    CType(Me.Controls(i), TextBox).Text = "Ура?"
  End If
Next


ок, работает методом создания dictionary(of integer,system.windows.forms.textbox)
потом добавления всех текстбоксов и перебором по этому словарю.
Однако для всех контролов которые у меня есть (40 штук), принадлежащих разным классам это дюже геморно.
Неужели нету более простого пути????

это ты сам с собой разговориваешь :) или просто не туда написал :))

dictionary(of integer,system.windows.forms.textbox)

тогда уж наверное лучше будет так
List(Of system.windows.forms.textbox)

Однако для всех контролов которые у меня есть (40 штук), принадлежащих разным классам это дюже геморно.

моя твоя не понимать :), а твоя сама твоя понимать? :)

Неужели нету более простого пути????

наверное, есть :)


--
Кодообменник Kbyte.Ru - бесплатный сервис по обмену кодами
http://kbyte.ru/code

Ответить

Номер ответа: 3
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #3 Добавлено: 25.11.07 13:00
Алексей - жму руку

Ответить

Номер ответа: 4
Автор ответа:
 zaitsman



ICQ: 61452976 

Вопросов: 2
Ответов: 12
 Web-сайт: zaitsman.mine.nu
 Профиль | | #4
Добавлено: 25.11.07 13:07
Алексей - приведенный Вами код с Me.Controls не работает -
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
A first chance exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll


Суть в чем - есть цикл, который обрабатывает значения 5 групп введенных полей, (на форме 5 табов, в каждой по 8 полей ввода), табы однотипны, хотелось просто прописать все один раз, а потом сделать счетчик-переменную, которая прогонит цикл 5 раз для 5 разных групп данных, с тем чтобы затем уже их вывести.

Ответить

Номер ответа: 5
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #5
Добавлено: 25.11.07 13:20
Алексей - приведенный Вами код с Me.Controls не работает -

все работает :) у тебя просто VS пиратская, купи лицензионную Pro, и все будет тип-топ :))

Суть в чем - есть цикл, который обрабатывает значения 5 групп введенных полей, (на форме 5 табов, в каждой по 8 полей ввода),
табы однотипны, хотелось просто прописать все один раз, а потом сделать счетчик-переменную, которая прогонит цикл 5 раз для 5 разных групп данных, с тем чтобы затем уже их вывести.

суть в чем - есть человек, который ходит по 5 комнатам и собирает
тапочки, (в квартире 5 комнат, в каждой по 8 тапочек), тапочки
одинаковые, все на левую ногу, хотелось просто прописать все один раз
на бумажке, а потом сделать роликовые коньки с моторчиком, чтобы
человек 5 раз по 5 разным комнатам ездил и собирал тапочки.

Внимание вопрос! Если в квартире 5 комнат, в которых есть тапочки, то почему афтар пытается искать тапочки в коридоре? :)

Ответить

Номер ответа: 6
Автор ответа:
 zaitsman



ICQ: 61452976 

Вопросов: 2
Ответов: 12
 Web-сайт: zaitsman.mine.nu
 Профиль | | #6
Добавлено: 25.11.07 16:41
То есть в пиратке работает не всё? интересно как ;)))

Конечно, в Вашем тексте виден богатый опыт программирования и жизненный и т.д., однако не так все просто, как Вы описали.
Еще в gwbasic можно было складывать имя переменной из других переменных, это можно в php - почему это нельзя в vb?????

Ответить

Номер ответа: 7
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #7
Добавлено: 25.11.07 17:20
То есть в пиратке работает не всё? интересно как ;)))

да нет, просто к тому времени как ты приобретешь лицензионную версию VS, ты скорей всего уже будешь понимать как "она" работает :)

Еще в gwbasic можно было складывать имя переменной из других переменных, это можно в php - почему это нельзя в vb?????

Причем тут складывание имен переменных :) Честно говоря, я вообще не вижу никакой связи между всеми твоими постами в этом топике :)
Если ты сейчас говоришь о символических ссылках в php, то почему девочки не могут писать стоя? :)

Ответить

Номер ответа: 8
Автор ответа:
 zaitsman



ICQ: 61452976 

Вопросов: 2
Ответов: 12
 Web-сайт: zaitsman.mine.nu
 Профиль | | #8
Добавлено: 25.11.07 19:17
Я не в курсе, как это называется. Я знаю, как это работает.
В пхп та же самая программа у меня работает с массивом данных winX, индексы которого - буквенные и могут быть заменены переменным, а вместо X подставляется другая переменная
${'win'.$counter}['glass_corrector']
. Это просто и удобно. не нужно по 2 раза переписывать имена значений создавая класс и потом присваивая их экземпляру, не нужно создавать никаких списков - просто и быстро. Я уверен, что в Vb это тоже можно просто и быстро - понять бы, как?

Ответить

Номер ответа: 9
Автор ответа:
 Алексей



black  admin

ICQ: 261779681 

Вопросов: 87
Ответов: 633
 Web-сайт: aleksey.nemiro.ru
 Профиль | | #9
Добавлено: 26.11.07 04:36
В php это называется ассоциативный массив, в .NET такого понятия нет, но есть коллекции:
Пространство имен System.Collections содержит интерфейсы и классы, которые определяют различные коллекции объектов, такие как списки, очереди, двоичные массивы, хеш-таблицы и словари.


$a = new Array("Вася"=>"Маша", "Петя"=>"Саша";);
// или
$a["Федя"] = "Наташа";


альтернатива в .NET:
Dim a As New Dictionary(Of String, String)
a.Add("Вася", "Маша";)
a.Add("Петя", "Саша";)
a.Add("Федя", "Наташа";)


php:
for ($i = 1; $i <= 5; $i++)
{
@a["Комната".$i] = "Тапочек";
}


vb .net:
Dim a As New Dictionary(Of String, String)
For i As Integer = 1 To 5
  a.Add("Комната" & i, "Тапочек";)
Next i


php:
$b = new Array("Комната1"=>"2 тапочка", "Комната2"=>"0 тапочек", "Комната3"=>"хрен вам, а не тапочки";)
$a = new Array("Дом"=>$b)


vb .net:
Dim b As New Dictionary(Of String, String)
b.Add("Комната1", "2 тапочка";)
b.Add("Комната2", "0 тапочек";)
b.Add("Комната3", "хрен вам, а не тапочки";)
Dim a As New Dictionary(Of String, Dictionary(Of String, String))
a.Add("Дом", b)


php:
class bb
{
public $KakoitoText;
}

class cc
{
public $EschoText;
public $AEtoData = date("Y-m-d H-i-s";);
}

$b = new bb();
$c = new cc();
$b->KakoitoText = "Привет!";
$c->EschoText = "Хочешь сало?";
$a = new Array($b => $c);


vb .net:
Public Class bb
  Public KakoitoText As String
End Class

Public Class cc
  Public EschoText As String
  Public AEtoData As Date = Now
End Class

Dim b As New bb()
b.KakoitoText = "Привет!"
Dim c As New cc()
c.EschoText = "Хочешь сало?"
Dim a As New Dictionary(Of bb, cc)
a.Add(b, c)


Если и сейчас не понятно, то я пасс.

--
Кодообменник Kbyte.Ru - ваша библиотека кодов!
http://kbyte.ru/code

Ответить

Номер ответа: 10
Автор ответа:
 КОТ



ICQ: 96702618 

Вопросов: 1
Ответов: 6
 Web-сайт: kostik-k.hotbox.ru
 Профиль | | #10
Добавлено: 27.11.07 12:09
a=a+1
next

Тут точно косяк!
ты увеличиваешь счетчик на единицу 2 раза
цикл For-Next сам увеличивает счетчик... а ты инструкцией: а=а+1 дополнительно увеличиваешь

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам