Проект с несколькими формами и модулем

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Проект с несколькими формами и модулем

Сообщение AnarCky » 12.05.2007 (Сб) 10:11

В модуле объвляю переменную

Код: Выделить всё

Public glavn As Form1


Из второй формы обращаюсь к первой:

Код: Выделить всё

glavn.cmbOsn.Items.Add(txtNas.Text)


А VB возникает и говорит "Object reference not set to an instance of an object"

Почему так и зачем :?: Помогите пожалуйста!
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 12.05.2007 (Сб) 10:34

Потому что есть разница между классом и экземпляром класса, об чем речь велась на форуме бесчисленное количество раз.

Где-то в коде ты должен инициализировать переменную

Код: Выделить всё
glavn = New Form1
Весь мир матрица, а мы в нем потоки байтов!

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 12.05.2007 (Сб) 11:47

В VB 2005 опять вернулись экземпляры форм по умолчанию, как в VB6 (по имени класса формы можно к ним обращаться). Это не очень красивое решение само по себе, но лучше, чем создавать еще и публичную переменную в модуле, моделирующую тот же функционал.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 12.05.2007 (Сб) 15:16

Спасибо!

ЗЫ: gaidar я рад. правда у меня VS.NET2003
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 12.05.2007 (Сб) 17:36

Что мешает скачать и установить бесплатный Visual Basic 2005 Express?
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 12.05.2007 (Сб) 18:44

gaidar
Буду рад если ты:
1) докажешь, что 2005 лучше 2003 (я наслышан об обратном)
2) скажешь, что такое Express
3) укажешь ссылку откуда можно скачать бесплатный VB 2005 Express
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 12.05.2007 (Сб) 18:57

AnarCky
Лучше, ибо новее. И удобней.
А скачать халявную версию можно с www.microsoft.com
Изображение

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Сообщение 1Steps » 12.05.2007 (Сб) 23:21

Удалена за ненадобностью.

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 12.05.2007 (Сб) 23:39

Express - это бесплатная "облегченная" версия серды разработки.

Информация здесь: http://www.microsoft.com/Rus/Msdn/vstud ... fault.mspx

Скачать:
http://msdn.microsoft.com/vstudio/expre ... fault.aspx
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 13.05.2007 (Вс) 13:31

А каким образом версия облегчена если не секрет?
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.05.2007 (Вс) 13:39

А почему бы не кликнуть соседнюю ссылку на той странице для получения ответа на этот вопрос?
http://www.microsoft.com/rus/msdn/vstud ... fault.mspx
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 13.05.2007 (Вс) 18:19

GSerg
Там, вообще-то, ничего конкретно не сказано, есть еще ссылки, большая часть на англоязычные страницы, по ним я не ходил.
Не нужно забывать, что некоторые до сих пор сидят на дуалапе.
5. Чем Express Editions отличаются от других версий Visual Studio и SQL Server?
Инструменты серии Express Editions предназначены для любителей, студентов и начинающих программистов, поэтому в них имеются не все возможности профессиональных версий Visual Studio и SQL Server. Express Editions ориентированы именно на потребности вышеперечисленных категорий пользователей. В составе продуктов версий Express поставляется специальная документация, которая поможет начинающим программистам быстро усвоить концепции, необходимые для создания более сложных приложений. Кроме того, несколько упрощен пользовательский интерфейс, чтобы второстепенные компоненты не мешали обучению. Те, кто впоследствии захочет перейти на профессиональные версии Visual Studio и SQL Server, смогут без проблем адаптировать свои навыки и программный код

По пунктам:
1. Отличается тем, для кого предназначено (И все?).
2. Содержит спец документацию, помогающую начинающим (а Professional что, не содержит?)
3. Немного упрощен интерфейс - совершенно неконкретно.
4. Те, кто впоследствии захочет перейти на профессиональные версии, смогут без проблем адаптировать свои навыки... разве это отличие?

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 13.05.2007 (Вс) 18:35

Злые вы.
Все фпоиск.
http://msdn2.microsoft.com/en-us/vstudio/aa700921.aspx
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 13.05.2007 (Вс) 19:43

Если в кратце и по-русски, то:
1. Нет удаленной отладки
2. Не встроен Class Designer
3. Нет редактора XSLT
4. Нет интеграции с Visual Source Safe (можно использовать отдельно, либо установить SVN и клиент к нему, встраивающийся в оболочку Tortosie SVN)
5. Нет встроенного инструмента для работы с SQL Server (можно использовать SQL Server Management Studio Express - тоже бесплатная)
6. Нет всяких примочек Team Edition вроде профилировщика, оавтоматизированного тестирования (можно NUnit использовать) и т.п.
7. MSDN Express - это лишь малая часть MSDN (хотя и содержит основные моменты)
8. Типов проектов меньше (никто не мешает компилировать из командной строки)

В общем почти все, что было в VB6/VS2002/VS2003 есть. Бесплатно.
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 14.05.2007 (Пн) 7:49

Вышел вот такой код, который не делает то, что надо
конкретно не добавляет в комбобоксы итемы

Код: Выделить всё

    Private Sub cmdOk1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdOk1.Click

        glavn = New Form1

        zap = System.IO.File.CreateText("Katalog.txt")
        If txtNas.Text = "" OrElse crtbFor.Text = "" Then
            MessageBox.Show("Текстовое поле должно быть заполнено!", "UCIS", _
                MessageBoxButtons.OK, MessageBoxIcon.Exclamation, _
                MessageBoxDefaultButton.Button1)
        Else
            Try
                zap.Write(crtbFor.Text & " | " & txtNas.Text & " | ")
            Catch ex As Exception
                MessageBox.Show("Произошла следующая ошибка: " & ex.Message, "UCIS", _
                    MessageBoxButtons.OK, MessageBoxIcon.Error, _
                    MessageBoxDefaultButton.Button1)
            End Try
        End If

        Select Case lbPrinN.SelectedItem

            Case "Простое вещество"
                pn1.Visible = False
                pn2_2.Visible = False
                pn2_1.Visible = True
                pn2_3.Visible = False
                pn2_4.Visible = False
                pn3.Visible = False
                pn4.Visible = False
                pn3_2.Visible = False

                glavn.cmbPV.Items.Add(txtNas.Text)

            Case "Кислота"
                pn1.Visible = False
                pn2_2.Visible = False
                pn2_3.Visible = True
                pn2_1.Visible = False
                pn2_4.Visible = False
                pn3.Visible = False
                pn4.Visible = False
                pn3_2.Visible = False

                glavn.cmbKis.Items.Add(txtNas.Text)
' и т. д. ...
        End Select


Вопрос: почему не делает? Help please
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.05.2007 (Пн) 9:19

Я так понимаю, что на момент выполнения кода у тебя уже существует экземпляр главной формы? Если так, то ты пытаешься добавить итемы в комбобоксе другого к тому же невидимого экземпляра главной формы
Весь мир матрица, а мы в нем потоки байтов!

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 14.05.2007 (Пн) 10:13

А как тогда добавить в существующий?
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 14.05.2007 (Пн) 14:43

смотреть мой первый пост в этом топике
Весь мир матрица, а мы в нем потоки байтов!

AnarCky
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 229
Зарегистрирован: 20.11.2006 (Пн) 20:12
Откуда: Россия, Екатеринбург.

Сообщение AnarCky » 14.05.2007 (Пн) 17:08

Дык так и есть... В самом начале процедуры инициализировал glavn = new Form1
Компьютеры были придуманы чтобы исправлять ошибки людей. Но кто же тогда будет исправлять ошибки компьютера?..

gaidar
System Debugger
System Debugger
 
Сообщения: 3152
Зарегистрирован: 23.12.2001 (Вс) 13:22

Сообщение gaidar » 14.05.2007 (Пн) 17:34

Коллеги, для новых вопросов создавайте новые топики с соответствующими названиями, а то новичкам будет сложнее искать ответы в будущем :)
The difficult I’ll do right now. The impossible will take a little while. (c) US engineers in WWII
I don't always know what I'm talking about, but I know I'm right. (c) Muhammad Ali

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 15.05.2007 (Вт) 7:10

AnarCky писал(а):Дык так и есть... В самом начале процедуры инициализировал glavn = new Form1


А надо один раз при старте приложения инициализировать, отобразить и работать с одним экземпляром главной формы.
Весь мир матрица, а мы в нем потоки байтов!


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 36

    TopList