单击是按钮时如何显示数据表?

问题描述 投票:-3回答:1

单击是按钮时如何显示数据表?在我的代码中,表格没有显示出来。

这是我的代码

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();
}
c# winforms datatable
1个回答
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按钮,撤消和什么不..这是方式beyod问题的范围不过!

对于最简单的编辑要求,所示的解决方案将起作用!


另请注意,所写的问题会创建一个空的DataTable,仅包含一些列。请将表格移动到类级别,这样您就可以保存并编辑数据!

© www.soinside.com 2019 - 2024. All rights reserved.