C#控件之DataGridView


第一種:
DataSet ds=new DataSet ();
this.dataGridView1.DataSource=ds.Table[0];

第二種:
DataTable dt=new DataTable();
this.dataGridView1.DataSource=dt;

第三種:
DataSet ds=new DataSet ();
this.dataGridView1.DataSource = ds.Tables["表名"];

第四種:
DataSet ds=new DataSet ();
this.dataGridView1.DataSource = ds;
this.dataGridView1.DataMember = "表名";

第五種:
ArrayList Al = new ArrayList();
this.dataGridView1.DataSource = Al;

第六種:
Dictionary<string, string> dic = new Dictionary<string, string>();
this.dataGridView1.DataSource = dic;

第七種:
DataView dv = new DataView();
this.dataGridView1.DataSource = dv;

第八種:
this.dataGridVi.DataSource = new BindingList<Object>(List<Object>);


非綁定模式 (ref:http://blog.csdn.net/yudandan10/article/details/9618763)

所謂的非綁定模式就是dataGridView控件顯示的數據不是來自於綁定的數據源,而是可以通過代碼手動將數據填充到DataGridView控件中,這樣就為DataGridView控件增加了很大的靈活性

在此我們先來了解一下DataGridView控件有多種類型的列 ,而這些類型都是間接的或直接的繼承了DataGridViewColumns()    ,下面是我們能夠長用的幾種類型

說明

DataGridViewTextBoxColumn

與基於文本的值一起使用,在綁定到數字和字符串類型的值時自動生成

DataGridViewCheckBoxColumn

booleancheckState值一起使用,在綁定到這些類型的值時自動生成

DataGridViewImageColumn

用於顯示圖像,在綁定到字節數組、Image對象或Icon對象自動生成

DataGridViewButtonColumn

用於在單元格中顯示按鈕,不會在綁定時自動生成,通常用來做未綁定列

DataGridViewComboBoxColumn

用戶在單元格中顯示下拉列表,不會在綁定時自動生成,通常收到進行數據綁定

DataGridViewLinkColumn

用於在單元格中顯示超鏈接,不會在綁定時自動生成,通常需要進行手動綁定數據

 

 

代碼添加數據

dataGridView1.Columns.Add("head1", "head1");
dataGridView1.Columns.Add("head2", "head2");
dataGridView1.Columns.Add("head3", "head3");

dataGridView1.Rows.Add(new[] { "1", "2", "3" });
dataGridView1.Rows.Add(new[] { "1", "2", "3" });
dataGridView1.Rows.Add(new[] { "1", "2", "3" });

//不顯示第一列
dataGridView1.RowHeadersVisible = false;


 

 

//隱藏第一列
dataGridView1.RowHeadersVisible = false;

//固定行高
dataGridView1.AllowUserToResizeRows = false; 

//禁止新增行
dataGridView1.AllowUserToAddRows = false; 

//修改某一行背景色
dataGridView1.Rows[i].DefaultCellStyle.BackColor = Color.DarkGray; 

//列標題居中
dataGridView1.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

//某一列居中
dataGridView1.Columns[0].DefaultCellStyle .Alignment = DataGridViewContentAlignment.MiddleCenter;
dataGridView1.Columns[1].DefaultCellStyle .Alignment = DataGridViewContentAlignment.MiddleCenter;

 

DataGridView中的Cell無法觸發KeyPress事件,解決方法

DataGridView在Cell編輯狀態響應回車鍵下的KeyPress/KeyDown/KeyUp事件

 

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
           
    if (e.Control is DataGridViewTextBoxEditingControl)
    {
        var dgv = (DataGridView)sender;

        var tb = (DataGridViewTextBoxEditingControl)e.Control;

        //解除事件
        tb.KeyPress -= dataGridView1_KeyPress;

        //需要添加事件的列
        if (dgv.CurrentCell.ColumnIndex == 3 )
        {
            //事件追加
            tb.KeyPress += dataGridView1_KeyPress;                   
        }
    }
}


private void dataGridView1_KeyPress(object sender, KeyPressEventArgs e)
{
    if (e.KeyChar < '0' || e.KeyChar > '9')
    {
        if (e.KeyChar != (char)((int)Keys.Back) && e.KeyChar != (char)((int)Keys.Escape))
        {
            e.Handled = true;
        }
    }
}

 

 

參考:

1 【轉】DataGridView綁定數據源的幾種方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM