如上题目

解决方案 »

  1.   

    没人Gz,只好用自已的笨办法了.for (int i=0;i<dt.Rows.Count;i++)
    {
    dg_ProductList[i,1] = dt.Rows[i]["Wlmc"];
    }
    不过还是希望有朋友给出好的解决方法.
      

  2.   

    楼主怎么在datagrid里加控件?我现在需要选定框,然后实现可以多选删除数据。多谢!
      

  3.   

    我也是参考从网上下载的,可以给你参考一下:
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;namespace HBS{ public class Form3 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.DataGrid dgdFunctionArea;
    private DataTable dtblFunctionalArea;
    private System.Windows.Forms.Button buttonFocus;
    private System.ComponentModel.Container components = null; public Form3()
    {
    InitializeComponent();
    PopulateGrid();
    } protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows 窗体设计器生成的代码
    private void InitializeComponent()
    {
    this.dgdFunctionArea = new System.Windows.Forms.DataGrid();
    this.buttonFocus = new System.Windows.Forms.Button();
    ((System.ComponentModel.ISupportInitialize)(this.dgdFunctionArea)).BeginInit();
    this.SuspendLayout();
    // 
    // dgdFunctionArea
    // 
    this.dgdFunctionArea.DataMember = "";
    this.dgdFunctionArea.HeaderForeColor = System.Drawing.SystemColors.ControlText;
    this.dgdFunctionArea.Location = new System.Drawing.Point(3, 7);
    this.dgdFunctionArea.Name = "dgdFunctionArea";
    this.dgdFunctionArea.Size = new System.Drawing.Size(264, 156);
    this.dgdFunctionArea.TabIndex = 0;
    // 
    // buttonFocus
    // 
    this.buttonFocus.Location = new System.Drawing.Point(193, 175);
    this.buttonFocus.Name = "buttonFocus";
    this.buttonFocus.Size = new System.Drawing.Size(70, 21);
    this.buttonFocus.TabIndex = 1;
    this.buttonFocus.Text = "获取焦点";
    this.buttonFocus.Click += new System.EventHandler(this.buttonFocus_Click);
    // 
    // Form3
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(276, 201);
    this.Controls.Add(this.buttonFocus);
    this.Controls.Add(this.dgdFunctionArea);
    this.Name = "Form3";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form3_Load);
    ((System.ComponentModel.ISupportInitialize)(this.dgdFunctionArea)).EndInit();
    this.ResumeLayout(false); }
    #endregion
    //初始化DataGrid
    private void PopulateGrid()
    {
    //创建一个DataTable对象,包括四列,前三列为String,最后一列为Boolean。
    dtblFunctionalArea  = new DataTable ("FunctionArea");
    string[] arrstrFunctionalArea = new string [3]{"Functional Area","Min","Max"};
    DataColumn dtCol = null;
    //创建String列       
    for(int i=0; i< 3;i++)
    {    
    dtCol = new DataColumn(arrstrFunctionalArea[i]);
    dtCol.DataType  = Type.GetType("System.String");
    dtCol.DefaultValue = "";
    dtblFunctionalArea.Columns.Add(dtCol);               
    }      //创建Boolean列,用CheckedBox来显示。    
    DataColumn dtcCheck = new DataColumn("IsMandatory");
    dtcCheck.DataType = System.Type.GetType("System.Boolean");
    dtcCheck.DefaultValue = false;
    dtblFunctionalArea.Columns.Add(dtcCheck);
      
    //把表绑定到DataGrid
    dgdFunctionArea.DataSource    = dtblFunctionalArea;   //为DataGrid加载DataGridTableStyle样式
    if(!dgdFunctionArea.TableStyles.Contains("FunctionArea"))
    {
    DataGridTableStyle dgdtblStyle = new DataGridTableStyle();
    dgdtblStyle.MappingName = dtblFunctionalArea.TableName;
    dgdFunctionArea.TableStyles.Add(dgdtblStyle);
    dgdtblStyle.RowHeadersVisible = false;
    dgdtblStyle.HeaderBackColor = Color.LightSteelBlue;
    dgdtblStyle.AllowSorting  = false;
    dgdtblStyle.HeaderBackColor = Color.FromArgb(8,36,107);
    dgdtblStyle.RowHeadersVisible = false;
    dgdtblStyle.HeaderForeColor = Color.White;
    dgdtblStyle.HeaderFont = new System.Drawing.Font("Microsoft Sans Serif", 9F,  
    System.Drawing.FontStyle.Bold, 
    System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
    dgdtblStyle.GridLineColor = Color.DarkGray;
    dgdtblStyle.PreferredRowHeight = 22;
    dgdFunctionArea.BackgroundColor = Color.White;   //设置列的宽度  
    GridColumnStylesCollection colStyle = dgdFunctionArea.TableStyles[0].GridColumnStyles;
    colStyle[0].Width = 100;
    colStyle[1].Width = 50;
    colStyle[2].Width = 50;
    colStyle[3].Width = 80;
    } DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[0]; 
    ComboBox cmbFunctionArea = new ComboBox();
    cmbFunctionArea.Items.AddRange(new object[]{"选项一","选项二","选项三"});
    cmbFunctionArea.Cursor = Cursors.Arrow;
    cmbFunctionArea.DropDownStyle= ComboBoxStyle.DropDownList;
    cmbFunctionArea.Dock = DockStyle.Fill;
    //在选定项发生更改并且提交了该更改后发生
    cmbFunctionArea.SelectionChangeCommitted += new EventHandler(cmbFunctionArea_SelectionChangeCommitted); 
    //把ComboBox添加到DataGridTableStyle的第一列
    dgtb.TextBox.Controls.Add(cmbFunctionArea);             
    } //设置焦点模拟
    private void GetFocus(int row,int col)
    {
    //先把焦点移动到DataGrid
    this.dgdFunctionArea.Focus();   
    //把焦点移动到DataGridCell
    DataGridCell dgc = new DataGridCell(row,col); 
    this.dgdFunctionArea.CurrentCell = dgc; 
    DataGridTextBoxColumn dgtb = (DataGridTextBoxColumn)dgdFunctionArea.TableStyles[0].GridColumnStyles[col]; 
    //设置焦点
    dgtb.TextBox.Focus();
    }           //把Combobox上修改的数据提交到当前的网格
    private void cmbFunctionArea_SelectionChangeCommitted(object sender, EventArgs e)
    {
    MessageBox.Show("OK");
    this.dgdFunctionArea[this.dgdFunctionArea.CurrentCell] = ((ComboBox)sender).SelectedItem.ToString();
    }        
    //设置新的焦点
    private void buttonFocus_Click(object sender, System.EventArgs e)
    {
    //焦点模拟,这里设置第三行第一列
    GetFocus(2,0);
    } private void Form3_Load(object sender, System.EventArgs e)
    {

    }
    }
    }