Модераторы: diadiavova, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив элементов управления 
V
    Опции темы
Kirill89
Дата 4.4.2007, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Доброе время суток.
Зарание прошу простить меня за, возможное, множество глупых вопростов. - я в net новичек.
Установил себе VB2005 и  меня сразу возник вопрос:
куда делся привычный массив элементов управления?


--------------------
PM MAIL WWW   Вверх
Akina
Дата 4.4.2007, 08:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



Перемещено в VB .NET.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
ivashkanet
Дата 4.4.2007, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(Kirill89 @  3.4.2007,  23:37 Найти цитируемый пост)
куда делся привычный массив элементов управления? 

А что это такое? Просто для нас он, так сказать, непривычный  smile 
Полазь по нэймспэйсу My, скорее всего он там 

Это сообщение отредактировал(а) ivashkanet - 4.4.2007, 08:46
PM MAIL WWW ICQ   Вверх
Kirill89
Дата 4.4.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Цитата(ivashkanet @  4.4.2007,  08:46 Найти цитируемый пост)
Полазь по нэймспэйсу My, скорее всего он там 

 smile пожалуйста, немного подробнее. 
Цитата(Kirill89 @  4.4.2007,  00:37 Найти цитируемый пост)
я в net новичек




--------------------
PM MAIL WWW   Вверх
ivashkanet
Дата 4.4.2007, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Kirill89, открываешь файл кода, вбиваешь "My", ставишь точку и наслаждаешься  smile 
user posted image
PM MAIL WWW ICQ   Вверх
Exception
Дата 4.4.2007, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



ivashkanet, массив элементов управления это не какой-то таинственный класс, а просто массив элементов управления smile .

http://forum.vingrad.ru/base/Kak-sozdat-ma...rolov-2112.html
PM   Вверх
ivashkanet
Дата 4.4.2007, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Exception, 
Код

dim controls() as System.Windows.Forms.Control

Ы?

Во дела  smile

Добавлено через 1 минуту и 8 секунд
Цитата(Exception @  4.4.2007,  17:58 Найти цитируемый пост)

Цитата(http://forum.vingrad.ru/base/Kak-sozdat-ma...rolov-2112.html)

Object not found!
... 
Error 404


Добавлено через 2 минуты и 32 секунды
Exception, а почему он "привычный"? ИМХО, этот масссив не привычней любого другого  smile 
Это слово меня и сбило smile 
PM MAIL WWW ICQ   Вверх
Exception
Дата 4.4.2007, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Цитата(ivashkanet @  4.4.2007,  20:02 Найти цитируемый пост)
Object not found!


Хм, у тебя ЧПУ включён? В любом случае, пости в Баги форума. У меня всё работает.

попробуй эту ссылку
PM   Вверх
ivashkanet
Дата 4.4.2007, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 5
Всего: 149



Цитата(Exception @  4.4.2007,  18:05 Найти цитируемый пост)
Хм, у тебя ЧПУ включён?

Нет, я ЧПУ не любить  smile 
PM MAIL WWW ICQ   Вверх
Exception
Дата 4.4.2007, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



ivashkanet, просто в VB 6 это делается абсолютно по другому - там ведь нет нормальных классов smile . Контролам из массива присваиваются одинаковые имена и ставятся разные значения для мистического свойства Index.

Добавлено через 55 секунд
Весь движок переходит на ЧПУ, привыкай.

Модератор: ладно, всё, кончаем оффтоп smile .
PM   Вверх
Kirill89
Дата 4.4.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Ага, кажется я понял. значит создаём  массив эллементов управления в ручную. Действительно работает.
Exception, большое спасибо.
ivashkanet, я так и не понял причем тут "my", ну вообщем вопрос решен. Спасибою smile
У меня есть по этой теме интересный момент, который я не понимаю:
Значит
Код

Dim MMenu(9) As System.Windows.Forms.Control
MMenu(0) = Me.MMenu1
MMenu(1) = Me.MMenu2
...
MMenu(0).Visible=False

Это всё хорошо, но массив MMenu должен содержать копии контролов MMenu1, MMenu2... и т.д.
Почему когда я указываю свойство копии контрола - реальный контрол отображает все изменения?


--------------------
PM MAIL WWW   Вверх
Exception
Дата 4.4.2007, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Цитата(Kirill89 @  4.4.2007,  20:35 Найти цитируемый пост)
ivashkanet, я так и не понял причем тут "my", ну вообщем вопрос решен.


Всё очень просто: в пространстве имён My лежат объекты, многие из которых привычны программистам VB 6, но отсутствуют во фреймворке как таковом. Андрей подумал, что, раз ты говоришь о какой-то "привычной" фиче VB 6, которой нет в VB .NET -- наверняка, она реализована в My smile .


Цитата(Kirill89 @  4.4.2007,  20:35 Найти цитируемый пост)
Это всё хорошо, но массив MMenu должен содержать копии контролов MMenu1, MMenu2... и т.д.


Почему ты так решил? При присваивании копируется не весь объект, а только ссылка на него => MMenu(0) и MMenu1 указывают на один и тот же объект.

Добавлено через 2 минуты и 54 секунды
Немного о ссылочных и структурных типах (C#)
PM   Вверх
Kirill89
Дата 4.4.2007, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Цитата(Exception @  4.4.2007,  20:02 Найти цитируемый пост)
Всё очень просто: в пространстве имён My лежат объекты, многие из которых привычны программистам VB 6, но отсутствуют во фреймворке как таковом. Андрей подумал, что, раз ты говоришь о какой-то "привычной" фиче VB 6, которой нет в VB .NET -- наверняка, она реализована в My  .

А, ясно...  smile 
Цитата(Exception @  4.4.2007,  20:02 Найти цитируемый пост)
Почему ты так решил? При присваивании копируется не весь объект, а только ссылка на него => MMenu(0) и MMenu1 указывают на один и тот же объект. 

Тоесть получается, что в данном случае, копирется hwnd и только? Я просто несовсем понимаю as object - если это просто привязка, почему не long(hwnd)?


--------------------
PM MAIL WWW   Вверх
Exception
Дата 4.4.2007, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 4525
Регистрация: 26.12.2004

Репутация: 18
Всего: 186



Цитата(Kirill89 @  4.4.2007,  21:08 Найти цитируемый пост)
Тоесть получается, что в данном случае, копирется hwnd и только? Я просто несовсем понимаю as object - если это просто привязка, почему не long(hwnd)? 


Ты, видимо, вообще плохо понял, о чём речь smile . Ладно, постараюсь разъяснить.

Все классы наследуются от класса System.Object. Однако, по некоторым признакам их делят на две основополагающих группы: структурные  и ссылочные.

Структурные типы (value types) -- это все примитивные типы (Boolean,  Integer, et cetera) и структуры. Все структурные типы неявно наследуют от System.ValueType. Особенность структурных типов заключается в том, что они хранятся во стеке, а не в управляемой куче (managed heap), как ссылочные объекты. По умолчанию объекты структурных типов считаются равными, если у них равны все поля. 

Объекты ссылочных типов занимают довольно много памяти, а потому хранятся в управляемой куче. Ключевая разница между этими группами заключается в том, что при присваивании объектов структурных типов копируется их значение, а при присваивании объектов ссылочных типов - только ссылка на объект.

Пример:

Код

Structure SomeStruct ' структурный тип
    Public Field As Integer
End Structure

Class SomeClass ' а это -- ссылочный
    Public Field As Integer
End Class


Код

Dim s As New SomeStruct ()
s.Field = 10
Dim s2 As SomeStruct = s ' копируется вся структура
s2.Field = 5 ' изменяем значение s2
Console.WriteLine (s.Field) ' s.Field по-прежнему равен 10, т.к. это две разные структуры

Dim c As New SomeClass ()
c.Field = 10
Dim c2 As SomeClass = c ' здесь копируется не сам объект, а только ссылка на него!
c2.Field = 5 ' так как c и c2 - один и тот же объект, значение c.Field тоже меняется
Console.WriteLine (c.Field) ' = 5


Надеюсь, чуточку прояснил ситуацию.

Таким образом, когда ты пишешь

Код

MMenu (0) = MMenu1


, ты просто копируешь ссылку на объект, на который указывает MMenu1, в элемент массива MMenu (0). HWND тут вообще ни при чём.

P.S. Почитай Дэна Эпплмана, "Переход на VB .NET: стратегии, концепции, код", вправляет мозги после использования VB 6 smile .

Добавлено через 3 минуты и 34 секунды
http://forum.vingrad.ru/index.php?showtopi...st&p=659170
http://www.rsdn.ru/article/dotnet/values.xml

Это сообщение отредактировал(а) Exception - 4.4.2007, 20:29
PM   Вверх
Kirill89
Дата 4.4.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 501
Регистрация: 17.10.2006
Где: Питер

Репутация: нет
Всего: 4



Exception, ограмное спасибо!
Всё. Я вник в смысл.
Дело ещё в том, что я парллельно пытаюсь перейти с VC++6.0 на C#.net, и у меня всё окончательно перемешалось...
Цитата(Exception @  4.4.2007,  20:29 Найти цитируемый пост)
Переход на VB .NET: стратегии, концепции, код

Почитаем  smile 


--------------------
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0617 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.