Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Не выводится массив текстбоксов

2.1K
12 мая 2007 года
госик
98 / / 20.11.2006
Класс представляет собой слово кроссворда:
Код:
public class KSlovo : Control
{
    public int size;
    TextBox[] word ;
    KNumber Number;
    int X, Y;
       
    public KSlovo(int Size,int x,int y,char number, bool ver_gor)
    {
        Number = new KNumber(Color.DeepPink,new Pen(Color.ForestGreen),x,y,number);
        word = new TextBox[Size];
        size = Size;
        X = x;
        Y = y;
        for(int i = 0; i <size; i++)
        {
            word = new TextBox();
            word.TabIndex = i;
            word.ForeColor = Color.White;
            word.Multiline = true;
            word.MaxLength = 1;
            word.Size = new Size(40, 40);
            if (ver_gor == true)//если горизонталь
            {
                X += 40;
                word.Location = new Point(X, y);
            }
            if (ver_gor == false)//если вертикаль
            {
                Y += 40;
                word.Location = new Point(x, Y);
            }
            this.Controls.Add(word); //либо здесь не надо
        }          
    }
}


Существует ArrayList, который представляет собой массив слов кроссворда. Функция заполнения этого ArrayList выглядит следующим образом:
Код:
protected void load()
{  
    Pen penBlue = new Pen(Color.Blue, 0.5f);
    Pen penColor = new Pen(Color.Red, 0.5f);
    Pen penEmpty = new Pen(Color.White);
    char n;
    int xbaseOffset = 20, ybaseOffset = 20;
    bool ver_gor = true; //если горизонталь
    for (int i = 0; i<n1; i++)
    {
        for (int j = 0; j<n2-1; )
        {
            if (array[i,j]>48 && array[i,j]<58)
            {                      
                n=array[i,j];
                knumber.Add(new KNumber(Color.Blue, penBlue, xbaseOffset, ybaseOffset,array[i,j]));
                if (array[i,j+1]=='*' && array[i,j+2]=='*')
                {
                    string w = "";
                    while (array[i,++j]=='*')
                        w+='*';
                    KSlovo s = new KSlovo(w.Length, xbaseOffset, ybaseOffset, n, ver_gor);
                    kslovo.Add(s);
                    this.Controls.Add(s); //либо здесь не надо
                }
                else
                {
                    j++;
                    xbaseOffset += 40;
                }
            }
            else
            {
                xbaseOffset +=40;
                j++;
            }
    }
    ybaseOffset += 40;
    xbaseOffset = 20;
    }          
           
}

пока делаю для горизонтальных слов
Как теперь вывести этот массив? По-моему, должно было быть так: при вызове конструктора KSlovo текстбоксы должны были вывестись, может я что-то куда-то забыла добавить?
273
13 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
Свойство Name каждому текстбоксу задавать не забывай, ещё его размеры тоже. Потом вызвать Update для формы.
2.1K
13 мая 2007 года
госик
98 / / 20.11.2006
word.Size = new Size(40, 40); - ну вот это и есть размер текстБокса. А что в свойстве Name писать?
Update где нужно вызвать, для чего?
273
13 мая 2007 года
3A3-968M
1.2K / / 22.12.2005
Update после добавления всех контролов на форму для её перерисовки. В свойстве Name задаёшь название компонента, для каждого текстбокса должно быть разное!
2.1K
14 мая 2007 года
госик
98 / / 20.11.2006
не понятно. посмотри внимательнее: каким образом я буду задавать разные Name для текстБоксов, если они создаются каждый по одному конструктору? Неужели мне надо в параметры конструктора добавить string и в load в цикле создавать новую строку. А блин, так тоже не получится, содержание строки-то будет всегда одно и то же.
2.1K
14 мая 2007 года
госик
98 / / 20.11.2006
а еще только что попробовала вызывать функцию Update после строки this.Controls.Add(...) сначала только в load (не получилось), потом и в конструкторе, тоже не получается добиться желаемого результата. :(
8.4K
19 мая 2007 года
TZA Group
120 / / 10.04.2007
Попробуй загнать всё в String<array>^primer;
Потом можно использовать
Show(primer);
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог