C#:在网格中显示数据的最佳方式?

时间:2011-03-01 09:05:24

标签: c# winforms

我正在使用C#WinForms。我想在网格中显示数据。网格必须能够响应行上的点击。什么是最好的组件?

4 个答案:

答案 0 :(得分:4)

他正在谈论类似按钮点击的事件。 DataGridView应该能够包含下拉菜单等控件,因此您可以添加依赖于所选单元格的响应。

尝试

private void GetData(string selectCommand)
{

        // Specify a connection string. Replace the given value with a 
        // valid connection string for a Northwind SQL Server sample
        // database accessible to your system.
        String connectionString =
            "Integrated Security=SSPI;Persist Security Info=False;" +
            "Initial Catalog=Northwind;Data Source=localhost";

        // Create a new data adapter based on the specified query.
        dataAdapter = new SqlDataAdapter(selectCommand, connectionString);

        // Create a command builder to generate SQL update, insert, and
        // delete commands based on selectCommand. These are used to
        // update the database.
        SqlCommandBuilder commandBuilder = new SqlCommandBuilder(dataAdapter);

        // Populate a new data table and bind it to the BindingSource.
        DataTable table = new DataTable();
        table.Locale = System.Globalization.CultureInfo.InvariantCulture;
        dataAdapter.Fill(table);
        bindingSource1.DataSource = table;

        // Resize the DataGridView columns to fit the newly loaded content.
        dataGridView1.AutoResizeColumns( 
            DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);   

}

private void Form1_Load(object sender, System.EventArgs e)
{
    // Bind the DataGridView to the BindingSource
    // and load the data from the database.
    dataGridView1.DataSource = bindingSource1;
    GetData("select * from Customers");
}

答案 1 :(得分:0)

的DataGridView。 但我不明白你的意思是“他的网格必须能够响应行上的点击”。

编辑:您可以使用datagridview中的各种事件来跟踪哪一行,哪一列以及您单击了哪个单元格。此外,Gridview还支持列中的Button,LinkBut​​ton和Image等控件。

答案 2 :(得分:0)

您必须无法使用数据网格的整行选择属性,然后在行单击或双击(无论您想要的话)事件上添加代码。

答案 3 :(得分:0)

在DataGrid中,您有一个事件。如果您执行以下操作,则可以管理CLick。

public Form1()
{
    InitializeComponent();
    dataGridView1.RowStateChanged += new DataGridViewRowStateChangedEventHandler(dataGridView1_RowStateChanged);
}

void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
    DataGridViewRow dgvr = e.Row;

    //GetDataFrom Database to fill other Grid
}