我怎么在文本框里输入最大和最小dataGridView里面自动成数据。比如开始是1,结束是100,自动生成100列数字。
直接填充DataTable,然后设置dgv的DataSource,而且是生成100行数据吧?生成100列,那生成几行数据?
测试代码如下,需要工程文件请发站内短信
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
int min = 0, max=0;
if (txtMin.Text == "" || !int.TryParse(txtMin.Text, out min)) { MessageBox.Show("最小值为数字!"); txtMin.Select(); return; }
if (txtMax.Text == "" || !int.TryParse(txtMax.Text, out max) || max < min) { MessageBox.Show("最大值为数字并且大于最小值!"); txtMax.Select(); return; }
DataTable dt = new DataTable();
//生成1列,数据max-min+1行
dt.Columns.Add("col1");
for (var i = min; i <= max; i++) dt.Rows.Add(i);
dataGridView1.DataSource = dt;
}
private void button1_Click(object sender, EventArgs e)
{
int min = 0, max = 0;
if (txtMin.Text == "" || !int.TryParse(txtMin.Text, out min)) { MessageBox.Show("最小值为数字!"); txtMin.Select(); return; }
if (txtMax.Text == "" || !int.TryParse(txtMax.Text, out max) || max < min) { MessageBox.Show("最大值为数字并且大于最小值!"); txtMax.Select(); return; }
DataTable dt = new DataTable();
//生成max-min+列,数据1行
for (var i = min; i <= max; i++)
{
dt.Columns.Add("col"+i);
}
DataRow dr = dt.NewRow();
int index = 0;
while (min <= max) {
dr[index++] = min;
min++;
}
dt.Rows.Add(dr);
dataGridView1.DataSource = dt;
}
}
}
有帮助麻烦点下【采纳该答案】,谢谢~~有其他问题可以继续交流~
你是要dataGridView 动态列?
不用操作数据库吗?数据是怎么来的呢?
你这个 我能想到的是 求结束减去开始 然后循环 添加值到List中 然后行转列
int a = Convert.ToInt32(this.textBox1.Text.Trim());
int b = Convert.ToInt32(this.textBox2.Text.Trim());
List<Model> ModelList = new List<Model>();
for (int i = 0; i < (b - a + 1); i++)
{
Model model = new Model();
model.ID = (a + i).ToString();
ModelList.Add(model);
}
DataTable table = new DataTable();//1.
for (int i = 0; i < ModelList.Count; i++)
{ //2.获取表头:此处将第一列当成表头
string ColName = ModelList[i].ID;//将每一行的第一列的值 赋值给变量
//string ColName=dsTemp.Tables[0].Rows[i]["列名字段"].ToString(); //这种写法也行,写法不唯一
table.Columns.Add(ColName);//将变量塞入表头中:这样循环就获取了表头
}
dataGridView1.DataSource = table;