DataGridView winform c++
Цель создать матрицу, использую winforms, проблема в том, что при запуске приложения и вводе значений появляется новая строка в DataGridView, и это возможно до бесконечность, а я хочу чтобы кол-во строк было ограниченным как количество столбцов
По дате
По рейтингу
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
#include <windows.h>
#include <vcclr.h>
#include <cliext/vector>
#include <cliext/adapter>
#include <msclr/marshal_cppstd.h>
using namespace System;
using namespace System::Windows::Forms;
void InitializeDataGridView(DataGridView^ dataGridView, int rowCount, int columnCount) {
// Устанавливаем количество столбцов
dataGridView->ColumnCount = columnCount;
// Устанавливаем количество строк
dataGridView->RowCount = rowCount;
// Запрещаем пользователю добавлять новые строки
dataGridView->AllowUserToAddRows = false;
// Запрещаем пользователю удалять строки
dataGridView->AllowUserToDeleteRows = false;
}
// Пример использования
[STAThread]
void Main() {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
// Создаем форму
Form^ form = gcnew Form();
form->Text = "DataGridView Example";
// Создаем DataGridView
DataGridView^ dataGridView = gcnew DataGridView();
dataGridView->Dock = DockStyle::Fill;
// Инициализируем DataGridView с 5 строками и 3 столбцами
InitializeDataGridView(dataGridView, 5, 3);
// Добавляем DataGridView на форму
form->Controls->Add(dataGridView);
// Запуск приложения
Application::Run(form);
}
123456789101112131415161718192021222324252627
void dataGridView_UserAddedRow(Object^ sender, DataGridViewRowEventArgs^ e) {
DataGridView^ dgv = dynamic_cast<DataGridView^>(sender);
if (dgv->Rows->Count > 5) { // Если количество строк больше 5
dgv->Rows->RemoveAt(dgv->Rows->Count - 1); // Удаляем последнюю добавленную строку
}
}
[STAThread]
void Main() {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Form^ form = gcnew Form();
form->Text = "DataGridView Example";
DataGridView^ dataGridView = gcnew DataGridView();
dataGridView->Dock = DockStyle::Fill;
InitializeDataGridView(dataGridView, 5, 3);
dataGridView->UserAddedRow += gcnew DataGridViewRowEventHandler(dataGridView_UserAddedRow);
form->Controls->Add(dataGridView);
Application::Run(form);
}
Этот код устанавливает фиксированное количество строк и столбцов в DataGridView и предотвращает добавление новых строк как пользователем, так и программно.
Все равно ошибка в конструкторе, приложение запускается, но мне нужен рабочий конструктор , с ним удобно моделировать приложение
12345678
// Инициализация компонентов и DataGridView
void InitializeComponent() {
this->dataGridView = gcnew DataGridView();
this->SuspendLayout();
// Настройки DataGridView
this->dataGridView->Location = System::Drawing::Point(13, 13);
123456789101112131415
this->dataGridView->Size = System::Drawing::Size(300, 200);
// Устанавливаем количество столбцов
this->dataGridView->ColumnCount = 3;
// Устанавливаем количество строк (например, 5)
this->dataGridView->RowCount = 5;
// Запрещаем добавление новых строк
this->dataGridView->AllowUserToAddRows = false;
// Запрещаем удаление строк пользователем
this->dataGridView->AllowUserToDeleteRows = false;
12345678910111213141516171819
// Добавляем DataGridView в форму
this->Controls->Add(this->dataGridView);
// Настройка формы
this->Text = "DataGridView Example";
this->ClientSize = System::Drawing::Size(320, 240);
this->ResumeLayout(false);
}
};
// Главная функция для запуска приложения
[STAThread]
int main() {
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew MainForm());
return 0;
} Видео по теме