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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как создавать текстбоксы в TableLayoutPanel в VB, подскажите новичку 
:(
    Опции темы
Darth_Sidious
  Дата 10.3.2008, 13:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Пишу в целях саморазвития программку (на VB 2008), считающую корни системы линейных уравнений. Нужны два элемента управления наподобие Excel'евской таблицы. Причем, количество строк и столбцов должно задаваться пользователем (например, с помощью счетчика NumericUpDown). Нашел для этих целей TableLayoutPanel, нашел, как там программно добавлять/удалять строки и столбцы (свойства RowCount и ColumnCount), а вот как добавлять в каждую ячейку по текстбоксу, такую инфу не смог найти. Подскажите, пожалуйста, как добавляются и удаляются дочерние элементы в этом контейнере.
Что я искал и нашел? Нашел какой-то метод CreateControl, но в нем (в скобках) почему-то нельзя указать, какой именно Control надо создать. Потом почитал, оказалось, что этот Control надо задать через Dim:
Код
Dim control_instance As Control

и потом уже использовать этот метод:
Код
control_instance.CreateControl()
.
То бишь, как я понимаю, этот метод нужен для создания самой этой таблицы элементов (т.е. TableLayoutPanel). Я им никогда не пользовался (обычно или через New, или создаю элемент на форме или диалоге), поэтому для меня это стало открытием. Но вот "открыть" для себя метод создания дочерних элементов в вышеуказанной таблице я не смог. Помогите, плиз!

Добавлено @ 14:06
Да, забыл отметить, что добавлять элементы в TableLayoutPanel программа будет при обработке события счетчика NumericUpDown_ValueChanged:
Код
Private Sub numNumberOfUnknownParameters_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles numNumberOfUnknownParameters.ValueChanged
        'задаем двумерный массив текстовых полей для ввода коэффициентов при неизвестных и одномерный массив - для ввода свободных членов выражения
        Dim txtCoefficients(frmEquations.array, frmEquations.array), txtAbsoluteTermsOfExpression(frmEquations.array) As TextBox
        
        'меняем в таблицах количество столбцов и строк
        tableCoefficients.ColumnCount = frmEquations.array
        tableCoefficients.RowCount = tableCoefficients.ColumnCount
        tableAbsoluteTermsOfExpression.RowCount = frmEquations.array

        ...

    End Sub

где numNumberOfUnknownParameters - и есть счетчик.

Это сообщение отредактировал(а) Darth_Sidious - 10.3.2008, 14:12
PM MAIL   Вверх
Freak_FB
  Дата 12.3.2008, 20:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ктулхувед
**


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

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



Есть одна рекомендация: сначала определи сколько на сколько будет создано TextBoxов, а затем, собственно, создавай их.

В определении формы:
Код

TextBox[,] textBoxes = new TextBox[3, 10]; // Там будет не больше, чем 3 колонки в 10 строк


После определения количества х и y столбцов и строк - создавай эти TextBoxы:
Код

private void button1_Click(object sender, EventArgs e)
{
  numericHorzCount.Enabled = false;
  numericVertCount.Enabled = false;

  this.SuspendLayout();

  for (int x = 0; x < numericHorzCount.Value; x++)
    for (int y = 0; y < numericVertCount.Value; y++)
    {
      textBoxes[x, y] = new TextBox();
      textBoxes[x, y].Location = new Point(10 + x * 100, 50 + y * 35);
      textBoxes[x, y].Size = new Size(80, 20);
      this.Controls.Add(textBoxes[x, y]);
    }
  this.ResumeLayout();
}                


numericHorzCount - это элемент-счётчик, указывающий кол-во колонок
numericVertCount - кол-во колонок

P.S.: TableLayoutPanel тут ваще не нужен
P.P.S.: ничё, шо не на бейсике?  smile 

Это сообщение отредактировал(а) Freak_FB - 12.3.2008, 20:08

Присоединённый файл ( Кол-во скачиваний: 6 )
Присоединённый файл  DynaText.rar 8,21 Kb


--------------------
user posted image
user posted image
Тонет Ктулху, все медведы горят в огне.
Я Креведко, очень страшно сегодня мне.

PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


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

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


 




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


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

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