C# dataGridView笔记

1.设置行标题
for (int i = 0; i < rowcount; i++)
{
   dataGridView1.Rows[i].HeaderCell.Value =(i+1).ToString();
}




1'设置行标题文字中心对齐、中心左对齐
dataGridView1.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; 
dataGridView1.RowHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft; 


2.设置第n列的宽度
dataGridView1.Columns[n].Width = 50;
dataGridView1.Columns[0].ReadOnly = true;//不允许编辑
dataGridView1.Columns[0].Resizable = DataGridViewTriState.False;//禁止改变第一列的列宽


 for(int i=0;i<dataGridView1.ColumnCount;i++) //所有列禁止排序
{
    dataGridView1.Columns[i].SortMode=DataGridViewColumnSortMode.NotSortable;
}


3.向单元格写入数据
dataGridView1.Rows[0].Cells[0].Value="123";


4.水平滚动条或垂直滚动条移动到指定位置
法1:FirstDisplayedScrollingRowIndex和FirstDisplayedScrollingColumnIndex等属性
法2:CurrentCell属性;
dataGridView1.FirstDisplayedScrollingColumnIndex=index0_day;
dataGridView1.CurrentCell=dataGridView1.Rows[0].Cells[index0_day];


5.dataGridView数据导出到Excel
  public bool ExportDataGridview(DataGridView dgv, bool isShowExcle)
{
            try 
            {
                if (dgv.Rows.Count == 0)
                    return false;
                //建立Excel对象
                Excel.Application excel = new Excel.Application();
                excel.Application.Workbooks.Add(true);
                excel.Visible = isShowExcle;
                //生成字段名称
                for (int i = 0; i < dgv.ColumnCount; i++)
                {
                    excel.Cells[1, i + 1] = dgv.Columns[i].HeaderText;
                }
                //填充数据
                for (int i = 0; i < dgv.RowCount - 1; i++)
                {
                    for (int j = 0; j < dgv.ColumnCount; j++)
                    {
                        if (dgv[j, i].ValueType == typeof(string))
                        {
                            excel.Cells[i + 2, j + 1] = "'" + dgv[j, i].Value.ToString();
                        }
                        else
                        {
                            excel.Cells[i + 2, j + 1] = dgv[j, i].Value.ToString();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                label3.Text = "导出失败!"+ex.Message.ToString();
                Delay(3000);
                label3.Text = "";
            }
            return true;
}


6.获取dataGridView1中第i行第j列的值
string data1=dataGridView1.Rows[i].Cells[j].Value.toString();
string data2=dataGridView1[j,i].Value.toString();




7.for循环遍历dataGridView中的数据时,最后一行是系统行,不能取出数据,语法格式如下(不是i<dataGridView1.RowCount-1)
for (int i = 0; i < dataGridView1.RowCount-1 ;i++ )
{
    ;
}


8.动态添加行数和列数
public partial class MainWindow : Window
    {
        DataTable dt = new DataTable();
        public MainWindow()
        {
            InitializeComponent();
 
            DataColumn dc = new DataColumn("count", typeof(System.String));
            dt.Columns.Add(dc);
            dc = new DataColumn("", typeof(System.String));
            dt.Columns.Add(dc);
            dc = new DataColumn("", typeof(System.String));
            dt.Columns.Add(dc);
            dc = new DataColumn("", typeof(System.String));
            dt.Columns.Add(dc);
            dc = new DataColumn("", typeof(System.String));
            dt.Columns.Add(dc);
            dc = new DataColumn("", typeof(System.String));
            dt.Columns.Add(dc);
            
            for (int i = 1; i < 11; i++)
            {
                dt.Rows.Add(new object[] { (i).ToString(), ("").ToString(), ("").ToString(), ("").ToString(), ("").ToString(), ("").ToString() });
            }
            dataGrid1.DataSource = dt.DefaultView; 
        }
    }


//
8.1
      dataGridView1.ReadOnly = true ;      //禁用编辑功能
方法一:通过手动添加Datatable,再绑定dataGridView


DataTable dt = new DataTable();//建立个数据表


dt.Columns.Add(new DataColumn("id", typeof(int)));//在表中添加int类型的列


dt.Columns.Add(new DataColumn("Name", typeof(string)));//在表中添加string类型的Name列


DataRow dr;//行
for (int i = 0; i < 3; i++)
{
      dr = dt.NewRow();
      dr["id"] = i;
      dr["Name"] = "Name" + i;
      dt.Rows.Add(dr);//在表的对象的行里添加此行
}


dataGridView1.DataSource =dt;


如果要添加一个textbox效果的列,可做如下处理


dt.Columns.Add(new DataColumn("选中", typeof(bool));


方法二:直接在dataGridView中插入


        dataGridView1.ColumnCount = 4;
        dataGridView1.ColumnHeadersVisible = true;


        // Set the column header style.
        DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();


        columnHeaderStyle.BackColor = Color.Beige;
        columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
        dataGridView1.ColumnHeadersDefaultCellStyle = columnHeaderStyle;


        // Set the column header names.
        dataGridView1.Columns[0].Name = "Recipe";
        dataGridView1.Columns[1].Name = "Category";
        dataGridView1.Columns[2].Name = "Main Ingredients";
        dataGridView1.Columns[3].Name = "Rating";


        // Populate the rows.
        string[] row1 = new string[] { "Meatloaf", "Main Dish", "ground beef",
            "**" };
        string[] row2 = new string[] { "Key Lime Pie", "Dessert", 
            "lime juice, evaporated milk", "****" };
        string[] row3 = new string[] { "Orange-Salsa Pork Chops", "Main Dish", 
            "pork chops, salsa, orange juice", "****" };
        string[] row4 = new string[] { "Black Bean and Rice Salad", "Salad", 
            "black beans, brown rice", "****" };
        string[] row5 = new string[] { "Chocolate Cheesecake", "Dessert", 
            "cream cheese", "***" };
        string[] row6 = new string[] { "Black Bean Dip", "Appetizer", 
            "black beans, sour cream", "***" };
        object[] rows = new object[] { row1, row2, row3, row4, row5, row6 };


        foreach (string[] rowArray in rows)
        {
            dataGridView1.Rows.Add(rowArray);
        }


插入DataGridViewCheckBoxColumn列


DataGridViewCheckBoxColumn column = new DataGridViewCheckBoxColumn();
{
        column.HeaderText = "选中";


        column.Name = isSelected;


        column.AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
        column.FlatStyle = FlatStyle.Standard;
        column.ThreeState = true;
        column.CellTemplate = new DataGridViewCheckBoxCell();
        column.CellTemplate.Style.BackColor = Color.Beige;
    }
 DataGridView1.Columns.Insert(0, column);
8.1 参考地址;  http://blog.csdn.net/alisa525/article/details/7350471


9.改变dataGridView的背景色
  单元格的颜色dataGridView1.Rows[0].Cells[3].Style.BackColor=Color.Green;
              dataGridView1.Rows[0].Cells[3].Style.BackColor=ColorTranslator.FromHtml("Green");
              dataGridView1.Rows[0].Cells[3].Style.BackColor=ColorTranslator.FromHtml("FF008000");
  改变某一行的颜色dataGridView1.Rows[0].DefaultCellStyle.BackColor = Color.Green;
  改变某一列的颜色dataGridView1.Columns[3].DefaultCellStyle.BackColor = Color.Green;
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页