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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> массив controls, ошибка при New System.Windows.Forms.T.. 
V
    Опции темы
IrinaProkopcova
  Дата 9.6.2006, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Помогите, пожалуйста, не понимаю в чем ошибка.
Код

Public LText() As System.Windows.Forms.TextBox
Sub newFrm()
            Dim DLeika As New obchiy 'форма
            Dim count As Integer = 1
            For r As Int16 = 1 To 24   ' 24 ряда
                For k As Int16 = 1 To 9 ' девять колонок в ряд 
                    ReDim Preserve stext(count)
                   LText(count) = New System.Windows.Forms.TextBox' здесь ошибку выдает
                    LText(count).Name = "Ltext" & count
                    LText(count).BorderStyle = BorderStyle.Fixed3D
                    Select Case k
                        Case 2, 3, 5, 6, 8, 9
                            LText(count).Width = x
                        Case Else
                            LText(count).Width = xB
                    End Select
                    LText(count).Height = 20
                    Select Case k
                        Case 1
                            lokY = 80
                        Case 2
                            lokY = 180
                        Case 3
                            lokY = 236
                        Case 4
                            lokY = 292
                        Case 5
                            lokY = 392
                        Case 6
                            lokY = 448
                        Case 7
                            lokY = 504
                        Case 8
                            lokY = 604
                        Case 9
                            lokY = 660
                    End Select
                    LText(count).Location = New Point(lokY, 40 + k * 20)
                    LText(count).Visible = True
                    DLeika.tpVertUgol.Controls.Add(LText(count))
                Next
            Next

            LeikaData(strAllFile)
            DLeika.MdiParent = Me
            DLeika.Show()
            DLeika.Text = DLeika.Text & strNProt
End Sub
 
PM MAIL   Вверх
ivashkanet
Дата 9.6.2006, 11:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



IrinaProkopcova, какая ошибка?
Index out of range?
Все дело в том, что нумерация элементов идет с нуля smile 
И поэтому последний элемент count-1
Ты хочешь добавить эелемент в массив. За пределами его верхней границы. 
Тебе нужно либо redim ему сделать, типа как тут 
Цитата(IrinaProkopcova @  9.6.2006,  10:58 Найти цитируемый пост)
  ReDim Preserve stext(count)
 Либо использовать массив с запасом элементов.
P.S. Мы не телепаты, давай полностью описание ошибки. Если приводишь код, то убери, пожалуйста, все лишнее, не относящееся к вопросу. Твой код должен быть полностью автономен (если, конечно, хочешь чтобы мы его могли откомпилить и проверить), а не содержать неизвестно где объявленных переменных.
P.P.S. Это все для твоего же блага, просто так тебе быстрее ответят  smile 

 
PM MAIL WWW ICQ   Вверх
IrinaProkopcova
Дата 9.6.2006, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Извиняюсь, просто думала ошибка, м.б., где-то раньше.
А вылетает здесь:
Код

        LText(count) = New System.Windows.Forms.TextBox

Текст Ошибки такой:
.
Цитата
An unhandled exeption has occurred in your application. If you click con......

Object reference not set to an instance of object.


А массив мне и нужен с единицы, потом из структуры давать значение удобней. "Нулевой" пусть себе болтается. 

Извиняюсь, еще раз, нашла ошибку. Действаительно Redimила не тот массив.
Спасибо! 

Это сообщение отредактировал(а) IrinaProkopcova - 9.6.2006, 12:12
PM MAIL   Вверх
ivashkanet
Дата 9.6.2006, 13:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(IrinaProkopcova @  9.6.2006,  11:56 Найти цитируемый пост)
Object reference not set to an instance of object.

Понятно. Сылка на объект не установлена. Т.е. LText "содержит" Nothing (в смысле ничего не содержит). Чтобы это исправить нужно его проинициализировать.
Либо так:
Код

LText = New System.Windows.Forms.TextBox

Либо в процессе описания:
Код

Public LText() As New System.Windows.Forms.TextBox
 

И будет тебе счастье  smile

Добавлено @ 13:06 
Как я посмотрю, ты сама нашла ответ.  Вот что значит прочитал только нужную мне часть (наименование ошибки) 

Это сообщение отредактировал(а) ivashkanet - 9.6.2006, 13:04
PM MAIL WWW ICQ   Вверх
Exception
Дата 10.6.2006, 11:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вставлю свои пять копеек. Код жуткий.



Цитата(IrinaProkopcova @  9.6.2006,  11:58 Найти цитируемый пост)
Public LText() As System.Windows.Forms.TextBox


1) public-поле
2) Непонятный префикс



Цитата(IrinaProkopcova @  9.6.2006,  11:58 Найти цитируемый пост)
Dim DLeika As New obchiy 'форма


Цитата(IrinaProkopcova @  9.6.2006,  11:58 Найти цитируемый пост)
DLeika.tpVertUgol.Controls.Add(LText(count))


3) Принято называть вроде MainForm, SomeForm, а не транслитом


Цитата(IrinaProkopcova @  9.6.2006,  11:58 Найти цитируемый пост)
Select Case k
Case 2, 3, 5, 6, 8, 9
    LText(count).Width = x
Case Else
    LText(count).Width = xB
End Select


4) Непонятно откуда взявшиеся числа

5) Совершенно непонятно назначение x, xB. Ну зафиг такие имена давать?



Цитата(IrinaProkopcova @  9.6.2006,  11:58 Найти цитируемый пост)
LeikaData(strAllFile)


6) Имя метода должно отражать его суть в глагльной форме!



Цитата(IrinaProkopcova @  9.6.2006,  12:56 Найти цитируемый пост)
А массив мне и нужен с единицы, потом из структуры давать значение удобней. "Нулевой" пусть себе болтается. 


7) Ужасный стиль программирования. Как пусть болтается?








Что могу сказать? Возможно, покажусь грубым, но учись писать грамотный код! С таким стилем программирования ты сама не сможешь понять код, который писала год назад! Стыдно. 
PM   Вверх
IrinaProkopcova
Дата 13.6.2006, 08:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

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

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


 




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


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

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