powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# datagridview не меняются значения в ячейках
5 сообщений из 5, страница 1 из 1
C# datagridview не меняются значения в ячейках
    #38797183
idShura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не могу понять почему не меняется значения ячеек datagridview сразу после заполнения таблицы данными, а по нажатию кнопки значения меняются, хотя код одинаковый.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Reflection;

namespace test
{
    public partial class Form7 : Form
    {
        public Form7()
        {
            InitializeComponent();

            
            string source = "...";

            string cSelect = "...";

            dataGridView1.VirtualMode = false;

            MySqlConnection conn = new MySqlConnection(source);
            MySqlDataAdapter dataAdapter1 = new MySqlDataAdapter(cSelect, conn);

            conn.Open();

            DataSet ds = new DataSet();
            dataAdapter1.Fill(ds);
            dataGridView1.DataSource = ds.Tables[0];

            conn.Close();

            DataGridViewLinkColumn lnk1 = new DataGridViewLinkColumn();
            dataGridView1.Columns.Add(lnk1);
            lnk1.Name = "pdf";
            lnk1.TrackVisitedState = false;
            lnk1.HeaderText = "Файл PDF";
            lnk1.Width = 80;

            //Не работает
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells[dataGridView1.Columns["pdf"].Index].Value = "test1";
            }
        }


        private void button1_Click(object sender, EventArgs e)
        {
            //Работает
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells[dataGridView1.Columns["pdf"].Index].Value = "test1";
            }
        }
    }
}
...
Рейтинг: 0 / 0
C# datagridview не меняются значения в ячейках
    #38797241
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поставь на событие Form7_Load заполнение данными
...
Рейтинг: 0 / 0
C# datagridview не меняются значения в ячейках
    #38797247
idShura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не помогло( результат прежний
...
Рейтинг: 0 / 0
C# datagridview не меняются значения в ячейках
    #38797256
Sergey S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На загрузку формы работает, вообще-то какую либо работу в конструкторе лучше не делать.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
public partial class Form1 : Form
    {
        Guid instanceId;

        public Form1()
        {
            List<int> list = new List<int>();
            list.Add(123);
            list.Add(123);

            InitializeComponent();
            dataGridView1.DataSource = list;

            DataGridViewLinkColumn lnk1 = new DataGridViewLinkColumn();
            dataGridView1.Columns.Add(lnk1);
            lnk1.Name = "pdf";
            lnk1.TrackVisitedState = false;
            lnk1.HeaderText = "Файл PDF";
            lnk1.Width = 80;

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells[dataGridView1.Columns["pdf"].Index].Value = "test1";
            }
        }

        private void button1_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells[dataGridView1.Columns["pdf"].Index].Value = "test2";
            }
        }


        private void Form1_Load(object sender, EventArgs e)
        {
            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                row.Cells[dataGridView1.Columns["pdf"].Index].Value = "test0";
            }
        }



        private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0) return;
            object obj =
                dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
            if(obj!=null)
                Console.WriteLine(23);
            this.Text = obj==null? "NULL": obj.ToString();
        }
    }

...
Рейтинг: 0 / 0
C# datagridview не меняются значения в ячейках
    #38797277
idShura
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey S спасибо, вынес foreach в Form_Load и все заработало.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / C# datagridview не меняются значения в ячейках
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]