单击是按钮时如何显示数据表?在我的代码中,表格没有显示出来。
这是我的代码
DialogResult result1 = MessageBox.Show("Would you like to make changes?",
"Context", MessageBoxButtons.YesNo);
if (result1 == DialogResult.Yes)
{
DataTable dt = new DataTable ();
dt.Columns.Add("Temperature");
dt.Columns.Add("Dimensions");
dt.Columns.Add("Yield Strength");
dt.Columns.Add("Weight");
dt.Columns.Add("Material");
DataRow _salta = dt.NewRow ();
}
if (result1 == DialogResult.No)
{
this.Close();
}
答案 0 :(得分:1)
要快速显示DataTable中的数据,您可以创建一个DataGridView
的表单。
以下是一个示例,其中假设您已填充 DataTable
并希望显示其所有数据,即其所有列和行:
Form form = new Form(); // a blank form
DataGridView DGV = new DataGridView(); // a blank DataGridView
DGV.Parent = form; // we add the DGV to the from
DGV.AutoGenerateColumns = true; // to copy all columns from the DataSource
DGV.DataSource = dt; // set the datasource to the table
form.Width = 500; // some size, change to your needs!
DGV.Dock = DockStyle.Fill; // the DGV fills the form
form.ShowDialog(); // we show it as a dialog
您应该通过至少将列宽设置为合适的值来改进:
DGV.Columns[0].Width = 40;
DGV.Columns[1].Width = 50;
DGV.Columns[2].Width = 75;
// ..
不是单独设置宽度,也可以使用多种自动模式之一:
DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader;
测试它们以确定它们中的任何一个是否适合您! (提示:有时使用列标题稍微有点帮助)
您可能希望为某些列设置一些格式:
DGV.Columns[3].DefaultCellStyle.BackColor = Color.LightSalmon;
DGV.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
DGV.Columns[0].DefaultCellStyle.Format = "#00.00°";
请注意,最后一行的数字格式只有在Column.DataType
实际上DataTable
为数字类型时才有效!要强制执行,您可以使用以下行:
yourDataTable.Columns[0].DataType = typeof(float);
如果仅用于显示,我们应该将其设为只读:
DGV.ReadOnly = true;
如果您希望将其显示为编辑数据的方式,则可能需要更多代码;在这种情况下,我建议创建一个专门的表单并编写所有必要的东西,如验证代码,查找,正确的错误消息等。还有一个Cancel
按钮,撤消和什么没有..但这是问题范围的方式!
对于最简单的编辑要求,所示的解决方案仍然有效!
另请注意,所写的问题会创建仅包含某些列的空 DataTable
。请将表格移动到类级别,这样您就可以保存并编辑数据!