MahmoudOmar Ответов: 1

Как мне добавить данные из текстового поля , переключателя и поле со списком таблицы столбцов в C# disktop приложение


я ящик столбцов в GridView для отображения значений.



это мой код :-

r = dt.NewRow();
                r[0] = dt.Rows.Count + 1;
                r[1] = txt_Job_card.Text;
                r[2] = txt_Value_Part.Text;

                if (radioButton_Part.Checked == true)
                {
                    r[3] = CB_Auto_parts.Text;
                    r[5] = x;
                }
                if (radioButton_repair.Checked == true)
                {
                    r[4] = CB_Repair_type.Text;
                }
                r[6] = CB_Providers_desc.Text;
                r[7] = CB_Hand_installation.Text;
                r[8] = txt_Notes.Text;
                r[9] = CB_Auto_parts.SelectedValue;
                r[10] = CB_Repair_type.SelectedValue;
                r[11] = CB_Providers_desc.SelectedValue;
                r[12] = CB_Hand_installation.SelectedValue;

                dt.Rows.Add(r);
                dgv_Add_job_card.DataSource = dt;
             
                ClearText();

                txt_Total_Values.Text = (from DataGridViewRow row in dgv_Add_job_card.Rows
                                         where row.Cells[2].FormattedValue.ToString() != string.Empty
                                         select Convert.ToDouble(row.Cells[2].FormattedValue)).Sum().ToString();
            }


Что я уже пробовал:

я пытался использовать этот код, но он не работает , и у меня есть ошибка, не могу найти столбец 0.

1 Ответов

Рейтинг:
0

RickZeeland

Я бы рекомендовал использовать BindingList и помещая ваши ценности в класс, вот минималистский пример:

using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace TestForm1
{
    public partial class Form1 : Form
    {
        /// <summary>
        /// The binding list reference.
        /// </summary>
        private BindingList<MyClass> masterBindingList;

        public Form10()
        {
            InitializeComponent();
            this.Init();
        }

        private void Init()
        {
            this.masterBindingList = new BindingList<MyClass>();
            this.dataGridViewMaster.DataSource = this.masterBindingList;
        }

        private void ButtonAddRowClick(object sender, EventArgs e)
        {
            var rowIndex = this.dataGridViewMaster.RowCount;
            this.AddRow(rowIndex);
            // this.UpdateRow(rowIndex);
            this.ScrollToRow(rowIndex);
        }

        /// <summary>
        /// Add new row via the BindingList.
        /// </summary>
        private void AddRow(int rowIndex)
        {
            this.masterBindingList.Add(new MyClass { Title = "Row " + rowIndex.ToString() });
        }

        private void ScrollToRow(int rowIndex)
        {
            this.dataGridViewMaster.ClearSelection();
            this.dataGridViewMaster.FirstDisplayedScrollingRowIndex = rowIndex;
            this.dataGridViewMaster.Focus();
        }
        /// <summary>
        /// Simple class with one string.
        /// </summary>
        public class MyClass
        {
            public string Title { get; set; }
        }
    }
}