none
Не могу скопировать строку RRS feed

  • Вопрос

  • Доброго времени суток! Есть форма в ней datagridview подключенная к БД, также есть вторая форма в ней редактируются/добавляются строки в БД. Вопрос: хочу сделать копирование формы, т.е. чтоб при выделении строки в datagridview и по нажатии кнопки "копировать" выходила вторая форма с данными выделенной строки и сохранялась как новая строка с новым primarykey, а при отмене не вносила изменения в БД. BindingSource.AddNew() очищает данные элементов управления в форме2 для добавления новых, а копировать и вставлять данные элементов управления очень не хочется, может есть какой другой способ? За ранее благодарен!
    • Перемещено Tagore Bandlamudi 2 октября 2010 г. 22:03 MSDN Forums consolidation (От:Разработка Windows-приложений)
    6 октября 2009 г. 7:35

Ответы

  • Если использовать в каждой форме свой ArrayList с textbox'ами(при их добавлении на форму)? и с ними уже работать с помощью инструментов ArrayList...
    • Помечено в качестве ответа Rif Iarullin 15 октября 2009 г. 5:53
    15 октября 2009 г. 4:57

Все ответы

  • Можешь сохранять данные прогаммно в переменные с элементов управления а после добовления строки заполнять ими форму
    12 октября 2009 г. 8:21
  • Можешь сохранять данные прогаммно в переменные с элементов управления а после добовления строки заполнять ими форму
      Для этого, как вариант можно использовать нами недавнее обсуждение =)
    12 октября 2009 г. 14:53
  • А если элементов управления 100... в основном текстовые элементы управления (textbox, combobox и т.д.) может как то можно узнать какие присутствуют элементы управления на форме и потом записать данные из них? как это можно сделать?
    14 октября 2009 г. 9:56
  • Можно по подробнее, не совсем понятно, как часть элементов присутствует, а с остальными что...? У вас элементы управления не относятся к классу своей формы?
    14 октября 2009 г. 11:04
  • Есть формы редактирования данных, на них в каждой разное количество textbox'ов, все они подключены к bindingsource. Прописывать сохранение типа:
    Dim text1 As String = TextBox.Text
    bindingsource.AddNew()
    TextBox.Text = text1
    для 100 штук текстбоксов очень долго да и не красиво, может как то можно узнать сколько присутсвуюет textbox'ов на форме, создать их список и работать уже с ним? или так нельзя сделать?=(
    Благодарю за ответы.
    14 октября 2009 г. 17:40
  • Если использовать в каждой форме свой ArrayList с textbox'ами(при их добавлении на форму)? и с ними уже работать с помощью инструментов ArrayList...
    • Помечено в качестве ответа Rif Iarullin 15 октября 2009 г. 5:53
    15 октября 2009 г. 4:57
  • Класс Form имеет свойство Controls, которое представляет коллекцию всех дочерних элементов формы. Коллекцию всех дочерних TextBox можно выделить так:
            private void button1_Click(object sender, EventArgs e)
            {
                String str = String.Empty;
                foreach (Control control in this.Controls)
                {
                    if (control is TextBox)
                    {
                        TextBox txt = (TextBox)control;
                        str += txt.Text + Environment.NewLine;
                    }
                }
                MessageBox.Show(str);
            }

    Ну... или совсем простым способом в одну строчку используя ныне модный Linq To Objects
            private void button1_Click(object sender, EventArgs e)
            {
                IEnumerable<TextBox> txtBoxes = this.Controls.OfType<TextBox>();
            }
    • Предложено в качестве ответа I.Vorontsov 16 октября 2009 г. 4:40
    16 октября 2009 г. 2:10