Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/46: Рейтинг темы: голосов - 46, средняя оценка - 4.54
6 / 6 / 3
Регистрация: 20.04.2013
Сообщений: 77

Как изменить ширину столбцов DataGridView, к которому привязан DataTable

11.08.2014, 12:18. Показов 9527. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте форумчане! Помогите мне решить такой вопрос, как после привязки DataGridView к DataTable можно изменить ширину столбцов по индексу, в таком плане datagridview.Columns[1].Width = 30. Проблема в том что инициализация столбцов производится в DataTable, а в DataGridView у меня пишет что у меня 0 столбцов.
Заранее благодарен!
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.08.2014, 12:18
Ответы с готовыми решениями:

Отсортировать данные по одному из столбцов в DataGridView который привязан к DataTable
Мне необходимо отсортировать данные по одному из столбцов в DataGridView который привязан к DataTable. Сортирую DataTable. Проблема в том,...

Как установить ширину столбцов в DataGridView?
Здравствуйте. DataGridView привязан к форме и его ширина меняется с изменением ширины формы. В DataGridView несколько столбцов....

Как менять ширину столбцов в datagridview?
Я бы хотел чтобы и ширину столбцов и размеры самого datagridview можно было менять во время выполнения, причем также обычно, как меняют...

10
Заблокирован
11.08.2014, 13:23
а в DataGridView у меня пишет что у меня 0 столбцов.
А где вы обращаетесь к DataGridView? В каком событии?
Нужно выбрать такое, чтобы столбцов к моменту его зажигания (вызова) было не 0.
0
6 / 6 / 3
Регистрация: 20.04.2013
Сообщений: 77
11.08.2014, 14:07  [ТС]
Zdorovo, до меня уже дошло решения
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
        private void control_ColumnAdded(object sender, DataGridViewColumnEventArgs e) {
            switch (e.Column.Index) {
                case 0: {
                        e.Column.Width = firstColumnWidth;
                        break;
                    }
                case 1: {
                        e.Column.Width = SecontColumnWidth;
                        break;
                    }
                case 2: {
                        e.Column.Width = ThirdColumnWidh;
                        break;
                    }
            }
        }
вот задаю нужную ширину для каждого столбца через события. Так работает
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
12.08.2014, 02:00
А можно и так....

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
Forms Code
{
..................
...................
using System.IO;
 
namespace .........
{
    public partial class Form1 : Form
    {
        public Form1()
        {
          InitializeComponent();
        }
 
        DataTable table;
        private BindingSource bindingSource = new BindingSource();
 
        private void Form1_Load(object sender, EventArgs e)
        {
         DataTable table = new DataTable();
          table.Columns.Add("Row", typeof(string));
           table.Columns.Add("Col1", typeof(int));
            table.Columns.Add("Col2", typeof(int));
             table.Columns.Add("Col3", typeof(int));
              table.Columns.Add("Col4", typeof(int));
               table.Columns.Add("Col5", typeof(int));
                table.Columns.Add("Col6", typeof(int));
                 table.Columns.Add("Col7", typeof(int));
                  table.Columns.Add("Col8", typeof(int));
 
          table.Rows.Add("Row0");
           table.Rows.Add("Row1");
            table.Rows.Add("Row2");
             table.Rows.Add("Row3");
              table.Rows.Add("Row4");
               table.Rows.Add("Row5");
                table.Rows.Add("Row6");
 
            dataGridView1.Width = 950;
             dataGridView1.Height = 210;
              dataGridView1.Font = new Font("Ariel", 12, FontStyle.Bold);
 
            bindingSource.DataSource = table;
             dataGridView1.DataSource = bindingSource;
          }
    
}
0
 Аватар для ViterAlex
8951 / 4863 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246
12.08.2014, 02:09
Цитата Сообщение от _shtaket Посмотреть сообщение
задаю нужную ширину для каждого столбца через события
Видимо, до этого ты пытался изменить ширину столбцов до того, как привязал DataTable к dgv
0
6 / 6 / 3
Регистрация: 20.04.2013
Сообщений: 77
12.08.2014, 11:29  [ТС]
ViterAlex, до не пытался, так как они еще не инициализированы. Пытался после добавления в DataTable и привязки к DataGridView.

Добавлено через 45 секунд
zna926, у вашем решении нет изменения ширины столбцов по индексно.
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
14.08.2014, 01:02
1. Посмотрите мой ответ, там указано, как в DataTable задать количество столбцов в dataGridView.
2.Ширина столбцов. Указан общий случай при разной ширине столбцов

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
Forms Code
{
 
       private void Form1_Load(object sender, EventArgs e)
       {
           for(int i=0; i< n; i++)   
            dataGridView1.Columns[i].Width = colw[i];   //  colw[i] - массив, где указывается ширина каждого столбца    
 
        }
 
 
 
}
0
6 / 6 / 3
Регистрация: 20.04.2013
Сообщений: 77
14.08.2014, 10:59  [ТС]
zna926, у меня так не работает. Пишет что количество столбцов = 0
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
14.08.2014, 15:36
shtaket. Все работает. Дело в том, что в DataTable было задано количество столбцов в dataGridView1.
Теперь по кнопке запишем проверку, которая это подтвердит.

C#
1
2
3
4
5
6
7
8
9
10
11
12
Forms Code
{
 
       private void button1_Click(object sender, EventArgs e)
       {
         int n = dataGridView1.ColumnCount;
            textBox1.Text = n.ToString();
       }
 
 
 
}
0
6 / 6 / 3
Регистрация: 20.04.2013
Сообщений: 77
14.08.2014, 15:50  [ТС]
zna926, Не знаю как у вас это метод работает, но у меня показывает 0.
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
14.08.2014, 22:00
проверьте: Установлен ли в точности код DataTable в Form_Load,
так же есть ли usind Systev.IO, usind Systev.Drawing
У себя сйчас проверил - без проблем

Добавлено через 4 часа 33 минуты
Если не работает, предлагаю начать с нуля. Нескольно простых дейсвий:
1. Установите на форме dataGriidView, появится темный прямоугольник. Это все, остальное доделает DataTable.
2. в Form1_Load внесите код.
3. Теперь при запуске программы должен появиться развернутый dataGriidView.
4. Теперь проверка: Кликните по кнопке и все клетки..dataGriidView заполнятяя целыми числами в диапазоне от -100 до 100


C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Forms Code
{
 
       private void button1_Click(object sender, EventArgs e)
       {
          Random rnd = new Random();
           for (int i = 0; i < nrow; i++)
          {
           for (int j = 1; j < ncol; j++)
           {
            n = rnd.Next(-100, 100);
             dataGridView1.Rows[i].Cells[j].Value = n;
            }
         }
       }
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.08.2014, 22:00
Помогаю со студенческими работами здесь

Как задать ширину столбцов dataGridView
Сам датагрид заполняю так : da = new SqlDataAdapter(@&quot; SELECT id_certificat as '№', ...

Как изменить ширину столбцов типа data?
Добрый вечер! Подскажите, пожалуйста, как изменить ширину столбцов типа data. Они получаются у меня очень широкие, пыталась изменить через...

Как изменить ширину столбца в DatagridView
Добрый вечер! А все началось с желания изменить ширину столбца: System.Data.DataTable DT = new System.Data.DataTable(); ...

Как изменить ширину одного столбца dataGridView?
Вот так: dataGridView1.RowHeadersWidth = 150; Меняет ширину 0-вого столбца. там где стрелка стоит. Как задать номера изменяемых...

Как программно изменить цвет ячейки и ширину столбцов в Excel
Здравствуйте, как можно программно изменить цвет ячейки в Excel? Я использую следующий код: _workSheet.get_Range(1, 1).Font.Color =...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru