c# - 以编程方式将 DataGridViews 添加到 Form
问题描述
我有一个问题,我正在寻找一些如何实现它的想法。我有一个带有 ComboBoxColumns、ButtonColumns 和 TextBoxColumns 的 DataGridView。
下面我有两个按钮,一个用于添加新的 DataGridView,一个用于删除最后创建的 DataGridView。
如何在单击添加按钮时在现有的 DataGridView 下方添加一个新的 DataGridView 并在单击删除按钮时将其删除。
创建新DataGridView的代码,但我每次都想要一个新的DataGridView,实际上它只是创建第二个然后在最后添加列。
private void add(object sender, EventArgs e)
{
try
{
dataGridView2.Visible = true;
dataGridView2.Width = 725;
dataGridView2.BorderStyle = BorderStyle.None;
dataGridView2.ScrollBars = ScrollBars.Both;
dataGridView2.ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.AutoSize;
dataGridView2.BackgroundColor = Color.White;
dataGridView2.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGridView2.CellBorderStyle = DataGridViewCellBorderStyle.None;
for (var i = 0; i < rb_insert_manually_datagridview_detailed.ColumnCount; i++)
{
if (rb_insert_manually_datagridview_detailed.Columns[i].GetType().Name == "DataGridViewComboBoxColumn")
{
var cmbColumn = new DataGridViewComboBoxColumn();
cmbColumn.DataPropertyName = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
cmbColumn.HeaderText = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
cmbColumn.ValueMember = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
cmbColumn.DisplayMember = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
cmbColumn.FlatStyle = FlatStyle.Flat;
dataGridView2.Columns.Add(cmbColumn);
}
if (rb_insert_manually_datagridview_detailed.Columns[i].GetType().Name == "DataGridViewButtonColumn")
{
var btnColumn = new DataGridViewButtonColumn();
btnColumn.DataPropertyName = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
btnColumn.HeaderText = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
btnColumn.FlatStyle = FlatStyle.Flat;
dataGridView2.Columns.Add(btnColumn);
}
if (rb_insert_manually_datagridview_detailed.Columns[i].GetType().Name == "DataGridViewTextBoxColumn")
{
var txtColumn = new DataGridViewTextBoxColumn();
txtColumn.DataPropertyName = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
txtColumn.HeaderText = rb_insert_manually_datagridview_detailed.Columns[i].HeaderText;
dataGridView2.Columns.Add(txtColumn);
}
}
dataGridView2.Location = new Point(rb_insert_manually_datagridview_detailed.Location.X, rb_insert_manually_btn_new_binder.Location.Y + 40);
this.Controls.Add(dataGridView2);
}
catch (Exception ex)
{
MessageBox.Show("Error", "Fehler", MessageBoxButtons.Error, MessageBoxIcon.Error);
}
}
要删除我实际上使用的 DataGrid 可见但它不起作用,并且在注释掉的版本上它会抛出异常
private void delete(object sender, EventArgs e)
{
try
{
/* dataGridView2.Columns.Remove("col1");
dataGridView2.Columns.Remove("col2");
dataGridView2.Columns.Remove("col3");
dataGridView2.Columns.Remove("col4");
dataGridView2.Columns.Remove("col5");
dataGridView2.Columns.Remove("col6");*/
dataGridView2.Visible = false;
}
catch
{
MessageBox.Show("Kann letzen Binder nicht löschen", "Warnung", MessageBoxButtons.OK, MessageBoxIcon.Warning);
}
}
我感谢每一个帮助,想法。
解决方案
推荐阅读
- r - 如何在 R markdown 中将 LaTeX 符号添加到 fig.cap?
- java - Spring Session + Redis + JSF
- python - Cython,CMake和setup.py,子目录中的python编译两次
- ios - 页面加载时滚动后如何访问 UICollectionView 中的特定单元格?
- c# - 如何验证多个正则表达式的正确性
- javascript - Onclick 更改 div 的背景颜色和图像集
- google-app-engine - 如何在 Node 中配置 Google App Engine cron 任务?
- python - Python:来自数据框的网络
- python - Apache + Wsgi + Django 2.1 + Virtualenv 3 = 致命 Python 错误:Py_Initialize:无法获取语言环境编码
- python - Tensorflow 服务 - “您必须为占位符张量“Placeholder_1”提供一个值”