我有像这样的点文件:
我已经创建了代码,允许用户从对话框中选择文件并将数据填充到 gridview。
private void cmdload_Click(object sender, EventArgs e)
{
DataTable table = new DataTable();
table.Columns.Add("Point");
table.Columns.Add("X");
table.Columns.Add("Y");
table.Columns.Add("Z");
table.Columns.Add("R");
table.Columns.Add("A");
table.Columns.Add("B");
table.Columns.Add("C");
Stream myStream = null;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "C:\\";
openFileDialog1.Filter = "Data Files (*.PNT)|*.PNT";
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
try
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
using (myStream)
{
string filename = openFileDialog1.FileName;
using (var reader = File.OpenText(filename))
{
string line;
while ((line = reader.ReadLine()) != null)
{
string[] parts = line.Split(' ');
table.Rows.Add(parts[0], parts[1], parts[2], parts[3], parts[4], parts[5], parts[6], parts[7]);
}
dataGridView1.DataSource = table;
}
}
}
}
catch (Exception ex) // you need to add the catch block if yo are using try block
{
MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
}
}
}
此代码工作正常,但 datagridview 不显示该值。
最佳答案
如果您不是通过代码创建 DataGridView
列,则必须将 DataGridViewColumn
的 DataPropertyName
设置为数据表
。
示例代码:
dataGridView1.AutoGenerateColumns = false;
DataGridViewTextBoxColumn col1 = new DataGridViewTextBoxColumn();
col1.Name = "Point";
col1.HeaderText = "Point";
col1.DataPropertyName = "Point";
dataGridView1.Columns.Add(col1)
另一种方法是将 AutoGenerateColumns
属性设置为 true 以自动创建所需的列并将数据绑定(bind)到 DataTable
。这样您就不必像上面的示例代码那样通过代码创建列。
dataGridView1.AutoGenerateColumns = true;
关于c# - 将文本加载到数据 GridView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22295063/