Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/25: Рейтинг темы: голосов - 25, средняя оценка - 4.72
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179

Нумерация строк в DataGridView

22.01.2018, 08:33. Показов 4890. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день! подскажите как сделать, чтобы при скрытии строк нумерация шла попорядку??? в моем случае идет так
1,2 строка потом идет скрытие строки далее 4,5,6 скрытие и 8 и т.д. Как сделать чтобы шло попарядку??. Вот мой код:
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
public Phone_VGSCH_Admin()
        {
            InitializeComponent();
          
            dalAdmin.FillDataGridViewAdmin(dgw_Phone_Admin); //происходит заполение датагрида
           
       
          
 
        }
 private void Phone_VGSCH_Admin_Load(object sender, EventArgs e)
        {
          
            dgw_Phone_Admin.RowPrePaint += dgw_Phone_Admin_RowPrePaint;
 
        }
 
     
        private void dgw_Phone_Admin_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
         
            for (int i = 0; i < dgw_Phone_Admin.RowCount; i++)
            {
                if (dgw_Phone_Admin.Rows[i].Cells[2].FormattedValue.ToString() == "Гараж")
                {
                    dgw_Phone_Admin.Rows[i].Visible = false;
                  
                }
                else
                {
                    //if (dgw_Phone_Admin.Rows[i].Cells[2].FormattedValue.ToString() == "САБ")
                    //{
                    //    object head = this.dgw_Phone_Admin.Rows[e.RowIndex].HeaderCell.Value;
                    //    if (head == null ||
                    //        !head.Equals((e.RowIndex + 1).ToString()))
                    //        this.dgw_Phone_Admin.Rows[e.RowIndex].HeaderCell.Value =
                    //            (e.RowIndex + 1).ToString();
                    //}
                }
              
            }
            if (dgw_Phone_Admin.Rows[0].Visible == true)
            {
 
                object head = this.dgw_Phone_Admin.Rows[e.RowIndex].HeaderCell.Value;
                if (head == null ||
                    !head.Equals((e.RowIndex + 1).ToString()))
                    this.dgw_Phone_Admin.Rows[e.RowIndex].HeaderCell.Value =
                        (e.RowIndex + 1).ToString();
 
            }
 
 
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.01.2018, 08:33
Ответы с готовыми решениями:

Нумерация строк в DataGridView
Как пронумировать строки в гриде (как в екселе)?

Нумерация строк в DataGridView
Как сделать, чтобы в 1 столбце DataGridView номер строки таблицы? Спасибо Добавлено через 1 час 23 минуты А вот так private...

DataGridView, нумерация строк в отдельном столбце
Здравствуйте, столкнулся с такой проблемой. Есть таблица, в которую данные загружаются из текстового файла, всего 5 столбцов. Первый...

11
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
22.01.2018, 10:04
Не очень так затея скрывать строки. Делайте фильтр по DataTable - это и быстрее и легче потом, не запутаетесь в индексах.
Также нужно понять - что означают номера строк - это уходит в БД или же сугубо для UI, для красоты пользователю.
Если сугубо для красоты - то можно воспользоваться событиями самого грида, например
C#
1
2
3
4
5
private void dgvTest_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
        {
            if (e.ColumnIndex == 0)
                e.Value = (e.RowIndex + 1).ToString();
        }
Тогда каждый раз при добавлении/удалении строки - будет автоматически заполняться 1-я колонка индексом.
0
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179
22.01.2018, 10:28  [ТС]
hoolygan, у меня данные берутся из Datasource вот код:
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
  public BindingSource FillDataGridViewAdmin(DataGridView dgv_MF)
        {
            using (connect = new OdbcConnection(connection))
            {
 
                query = "select phone_vgsch.fio,dolzhnost.dolzhnost,location.loc,mobile_phone.mob_phone, tariff_plan.tar_plan from phone_vgsch,dolzhnost,location, mobile_phone,tariff_plan where phone_vgsch.FK_DOLZHNOST = DOLZHNOST.ID_DOLZHNOST and phone_vgsch.fk_location = location.id_location and phone_vgsch.fk_mobile_phone = mobile_phone.id_mobile_phone and phone_vgsch.fk_tariff_plan = tariff_plan.id_tariff_plan" /*and phone_vgsch.FK_LOCATION = LOCATION.ID_LOCATION   personel.fk_position = posit.id_posit and personel.fk_tag = tags.id_zavandtag"*/;
                cmd = new OdbcCommand(query, connect);
                try
                {
                    // connect.Open();
                    dataadapter = new OdbcDataAdapter();
                    dataadapter.SelectCommand = cmd;
                    ds1 = new DataTable();
                    dataadapter.Fill(ds1);
                    bs = new BindingSource();
                    bs.DataSource = ds1;
                    if (dgv_MF.InvokeRequired)
                    {
                        // dgv_MF.DataSource = bs;
                        dgv_MF.Invoke(new Action<DataGridView>(DataGrid => DataGrid.DataSource = bs), dgv_MF);
                        dgv_MF.Invoke(new Action<DataGridView>(DataGrid => DataGrid.Sort(dgv_MF.Columns[0], ListSortDirection.Ascending)), dgv_MF);
 
                    }
                    else
                        dgv_MF.DataSource = bs;
                    dataadapter.Update(ds1);
 
                     connect.Close();
 
                }
                catch (OdbcException e)
                {
                    MessageBox.Show("Невозможно подключится к базе данных" + e.Message, "БД FLEXCOM", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            return bs;
 
        }
попробывал вашим кодом всеравно также да и мне нужен индекс -1
0
 Аватар для Козадоев
164 / 154 / 33
Регистрация: 05.03.2013
Сообщений: 876
22.01.2018, 11:20
Нужно просто делать сортировку данных по номеру строки и будет все по порядку.
0
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179
22.01.2018, 12:15  [ТС]
Цитата Сообщение от Козадоев Посмотреть сообщение
Нужно просто делать сортировку данных по номеру строки и будет все по порядку.
как тогда сделать сортировку на -1 строке вот так неполучилось
C#
1
dgw_Phone_Admin.Sort(dgw_Phone_Admin.Columns[-1], ListSortDirection.Ascending);
0
 Аватар для Козадоев
164 / 154 / 33
Регистрация: 05.03.2013
Сообщений: 876
22.01.2018, 12:27
Цитата Сообщение от Keysi Посмотреть сообщение
как тогда сделать сортировку на -1 строке вот так неполучилось
Сортировка источника может быть сделана например так

C#
1
2
3
4
5
 DataView view1 = DataSet1.Table1.DefaultView;
 BindingSource source1 = new BindingSource();
 source1.DataSource = view1;
datagridview1.DataSource = source1;
source1.Sort = "NumColunm";
где NumColunm - колонка типа int;
1
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
22.01.2018, 12:38
Keysi, Если у Вас нумерация строк - величина, приходящая из БД - да и сама колонка скрыта от пользователей - тогда понять не могу причину этого. Ведь сама колонка отсротирована по номеру, просто скрыты строки. Я же думал, что нужно именно пользователю отобразить номера строчек, как ексель, например, отображает номера строк, но они ни к чему не привязаны.
0
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179
22.01.2018, 12:40  [ТС]
Цитата Сообщение от Козадоев Посмотреть сообщение
Сортировка источника может быть сделана например так
интересно и как же название колонки с индексом -1?
0
360 / 287 / 76
Регистрация: 21.06.2016
Сообщений: 1,115
22.01.2018, 18:14
Keysi, источник - это не грид. У источника (DataTable входящий в объект DataSet, которое Вы заполняете методом Fill() у dataadapter) - нет колонки с индексом "-1". нумерация колонок начинается с "0". Желательно Вам разобраться со своим кодом, потому что пока что Вы плаваете в нем.
1
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179
23.01.2018, 05:03  [ТС]
Цитата Сообщение от hoolygan Посмотреть сообщение
Keysi, источник - это не грид. У источника (DataTable входящий в объект DataSet, которое Вы заполняете методом Fill() у dataadapter) - нет колонки с индексом "-1". нумерация колонок начинается с "0". Желательно Вам разобраться со своим кодом, потому что пока что Вы плаваете в нем.
Как нету 0- это колонка ФИО , значит -1 рисунок в приложении после скрытия строк у меня вот что получается:
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,574
23.01.2018, 05:24
Цитата Сообщение от Keysi Посмотреть сообщение
Как нету
Так это не колонка, а Column/Row Header...
1
3 / 4 / 2
Регистрация: 05.04.2011
Сообщений: 179
23.01.2018, 07:07  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Так это не колонка, а Column/Row Header...
вот как она по нормальному называется чтобы по ней доступится или сделать по ней сортировку?

Добавлено через 25 минут
Короче всем спасибо кого помучил. Оказывается после сортировки невидимые строки появляются. Было принято решение удалять их тогда и нумерация встает нормально в Column/Row Header
C#
1
2
3
4
5
6
7
8
9
  for (int i = 0; i < dgw_Phone_Admin.RowCount; i++)
            {
                if (dgw_Phone_Admin.Rows[i].Cells[2].FormattedValue.ToString() == "Гараж")
                {
                    dgw_Phone_Admin.Rows.RemoveAt(i);
 
                }
 
            }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.01.2018, 07:07
Помогаю со студенческими работами здесь

Нумерация отдельного столбца datagridview
Здравствуйте. Как пронумеровать отдельный столбец datagridview?

Автоматическая нумерация заголовков столбцов в DataGridView
Нужна помощь. Есть одна форма, в которой вводится информация (допустим некое количество столбцов), в другой форме должна сформироваться...

Нумерация строк в RichTextBox
Я занимаюсь кодингом на c# не так давно, столкнулся с проблемой, не знаю как сделать нумерацию строк для richTextBox. Помогите пожалуйста...

Нумерация строк в RichTextBox'e
Здравствуйте. Вот есть скриншот программы. В нём показана работа программы, лексический анализатор. Но это не важно. В программе для ввода...

Нумерация строк в RichTextBox
Здравствуйте. Не могли бы подсказать как можно реализовать нумерацию строк в richtextbox. Нашёл в сети не мало статей, но все какие-то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru