Дата  Запланированые курсы
13.12 DEV-C-МP2. Модульная программа «Объектно-ориентированное программирование. Язык С++»
16.12 Работа в MS Excel. Расширенные возможности
16.12 DEV-C200. Объектно-ориентированное программирование на языке С++. Базовый уровень
17.12 CORTEX-M-RTOS. Разработка управляющих программ для МК систем управления с использованием многозадачных ОС реального времени
18.12 Инструменты бизнес-анализа Microsoft Excel: PowerPivot, PowerView
23.12 Автоматизация работы в Excel с использованием VBA
20.01 DEV-SWT110. Введение в технологии разработки программного обеспечения: разработка требований и проектирование
20.01 DEV-C210. Объектно-ориентированное программирование на языке С++. Углубленное изучение
28.01 DEV-PY200. Объектно-ориентированное программирование на языке Python
30.01 Linux-LF. Расширенное администрирование ОС Linux (ПП+)
17.02 DEV-C220. Прикладное программирование с использованием стандартов С++11, 14, 17, 20. Базовый уровень
25.02 DEV-J200. Java EE. Разработка корпоративных приложений
03.03 DEV-PYWEB. Разработка WEB приложений на языке Python
27.03 DEV-QT10. Прикладное программирование на С++ с использованием Qt. Базовый уровень
30.03 DEV-J210. Java EE. Разработка web сервисов
06.04 DEV-PYQT. Разработка оконных приложений Python c использованием Qt
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Автоматизация ввода
DblK
#1 Оставлено : 10 ноября 2008 г. 16:38:42(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 5
Баллов: 15

Есть задача - заполнить одномерный массив числами, вводимыми в форме через поля ввода.
Как можно сделать так, чтобы элементам массива автоматически присваивались введенные значения?
Хотелось бы через цикл, например For...Next
И есть ли способ по введенному числу создавать в форме соответствующее количество полей ввода?
Чтобы было нагляднее:
intN - число элементов массива
arrB(intN) - конечный массив данных
Реклама
Margarita.Lukina
#2 Оставлено : 10 ноября 2008 г. 18:29:27(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 10.02.2006(UTC)
Сообщений: 156
Баллов: 468
Откуда: Russia Spb

можно через цикл...для каждого элемента коллекции Controls на определенной Panel
добавляйте элементы управления на форму динамически...это можно... Form1.Controls.Add(new TextBox(...))...

Margarita Lukina
Margarita Lukina
DblK
#3 Оставлено : 10 ноября 2008 г. 19:16:43(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 5
Баллов: 15

Пытаюсь сделать следующее:
For i = 1 To intN
Form1.Controls.Add (New TextBox)
Next

Получаю ошибку: Invalid use of New keyword

Пытаюсь сделать:
For i = 1 To intN
Form1.Controls.Add New Form1.TextBox
Next

ПОлучаю: User-defined type not defined

Что я делаю не так?
Еще вопрос - можно ли нумеровать Текст-боксы и перебирать их в цикле For?
Margarita.Lukina
#4 Оставлено : 12 ноября 2008 г. 14:20:45(UTC)
Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 10.02.2006(UTC)
Сообщений: 156
Баллов: 468
Откуда: Russia Spb

Извините, я не сильна в синтаксисе VB и даже не знаю с какой версией вы работаеете...на вскидку - после New надо узакывать контруктор класса... что-то типа TextBox()...нумеровать...навернео можно...но вообще для того, что бы пробежаться по всей коллекции Controls вполне подойдет foreach...вместо for...

Margarita Lukina
Margarita Lukina
Alexander.Kudakov
#5 Оставлено : 12 ноября 2008 г. 20:11:45(UTC)
Ранг: Администратор

Группы: Администраторы, Модераторы, Зарегистрированные пользователи
Зарегистрирован: 15.12.2002(UTC)
Сообщений: 2,418
Баллов: 7,303
Откуда: Russia Санкт-Петербург

Поблагодарили: 4 раз в 4 постах
<b>DblK</b>, вы поиском в интеренте попользуйтесь для начала
DblK
#6 Оставлено : 13 ноября 2008 г. 13:28:51(UTC)
Ранг: Новичок

Группы: Зарегистрированные пользователи
Зарегистрирован: 24.09.2008(UTC)
Сообщений: 5
Баллов: 15

Проще всего сказать - "Загугли!"...
Я потому и спрашиваю, что:
- большинство вариантов поиска по оператору New выдает страницы с языком С++
- справка, встроенная в VB говорит, что New у нее нет
- здесь могут дать конкретную информацию по конкретной задаче
- я не прошу делать что-то за меня, мне нужно разобраться
- покажите пример использования функции, а применить в своем контексте я и сам смогу
Alexander.Schukin
#7 Оставлено : 13 ноября 2008 г. 15:33:02(UTC)
Alexander.Schukin

Ранг: Активный Участник

Группы: Зарегистрированные пользователи
Зарегистрирован: 08.03.2011(UTC)
Сообщений: 1,493
Баллов: 4,472
Мужчина
Откуда: Russia Санкт-Петербург

Сказал «Спасибо»: 1 раз
Поблагодарили: 5 раз в 5 постах
1. В VB.Net динамическое добавление элементов интерфейса в контейнер ничем не отличается от той же операйции в C#.
2. Поиск в справочной системе с полоборота выдает полезные примеры. Например тут:
ms-help://MS.VSCC.v80/MS.MSDN.v80/MS.NETDEVFX.v20.en/CPref17/html/P_System_Windows_Forms_Control_Top.htm
3. Ну например можно предложить такую организацию (чего-то набросал...):
Код:

Private arrTBoxes() As TextBox

Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ReDim arrTBoxes(9)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim intC As Integer
Dim intShift As Integer = 20

For intC = 0 To arrTBoxes.GetUpperBound(0)
arrTBoxes(intC) = New TextBox
Me.Controls.Add(arrTBoxes(intC))
With arrTBoxes(intC)
.Visible = True
.Location = New Point(20, intShift)
intShift += 30
End With
Next
End Sub



Форум хорошо, а форум+курсы лучше! :)
RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Guest
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.