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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как связать bindingsource с textbox 
V
    Опции темы
t0mmy4824
Дата 26.5.2011, 18:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Доброго вечера всем
проблема такова, у меня есть форма, с датагридом, я его заполняю вручную...все работает) 
хочу к форме добавить кнопку которая будет создавать динамически контролы, а точнее лейблы и текстбоксы..и хочу чтоб в текстбоксах сразу были вбиты данные с датагрида..когда я буду перемещатся биндингнавигатором по таблице, автоматом чтоб  менялись значения в текстбоксах
пишу такой код...контролы создает нормально, но в текстбоксе сходу вбито первые значения из моего датагрида...не могу понять в чем ошибка
Код

private void button2_Click(object sender, EventArgs e)
        {

            flag = 2;
            int j = 30;
            panel1.Controls.Clear();
            for (int i = 1; i <= dataGridView1.ColumnCount; i++)
            {
                Label lb = new Label();
                lb.Name = "label" + i.ToString();
                lb.Text = dataGridView1.Columns[i - 1].Name;
                lb.Location = new Point(25, j - 25);
                panel1.Controls.Add(lb);

                TextBox tb = new TextBox();
                tb.Name = "textBox" + i.ToString();
                tb.Location = new Point(125, j - 25);
                tb.Width = 180;
                panel1.Controls.Add(tb);
                BindingSource bs = new BindingSource();
                bs.DataSource = dataGridView1.DataSource;
                bindingNavigator1.BindingSource = bs;
                tb.DataBindings.Add(new Binding("Text", bs, dataGridView1.Columns[i - 1].Name));

                j += 30;
            }
            panel1.Controls.Add(b);

        }


я не сильно понимаю в этом, только учусь, не судите строго..
PM MAIL   Вверх
jonie
Дата 26.5.2011, 19:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

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



у вас привязка свойства текст на BindingSource bs, который вы тут же и создаете.
Тогда как у GridView есть свойство DataSource, которое обычно указывает на BindingSource...

Т.е. я хочу сказать то, что ваш bs никак не будет уведомлен GridView об изменении позиции, а будет уведомлен изначальный GridView.DataSource.

Вам надо:
1) создать грид (бросили на форму)
2) создать BiningSource, заполнить ему параметры (опять же бросили на форму)
3) привязать grid.DataSource к BindingSource
4) привязывать ваши вновьсоздаваемые текст боксы также к тому же самому BindingSource что и в п3 НЕ создавая новых.

Связки:
данные --- biningSource ---(grid & textboxes & other visual controls(GridViewNavigator, etc.) )


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
t0mmy4824
Дата 26.5.2011, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



спс
я понял)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

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

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


 




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


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

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