如题

解决方案 »

  1.   

    datagrid的keypress事件中textbox1.text=mydatagrid(mydatagrid.currentcell.rownumber,0)
    textbox2.text=mydatagrid(mydatagrid.currentcell.rownumber,1)
    ........以此类推
      

  2.   

    从孟子那抄袭的...8问偶
    namespace DataGridDoubleClick
    {
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data; public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.DataGrid dataGrid1;
    private DataSet myDataSet;
    DateTime gridMouseDownTime;
        private System.Windows.Forms.Label label1;

    private System.ComponentModel.Container components = null; public Form1()
    {
    InitializeComponent();
    gridMouseDownTime = DateTime.Now;
    SetUp();
    } private void SetUp()
    {
    // 用2个Table和1和Relation创建DataSet
    MakeDataSet();
    // 数据绑定
    dataGrid1.SetDataBinding(myDataSet, "Customers"); //添加样式
    AddCustomDataTableStyle();
    } private void MakeDataSet()
    {
    // 创建DataSet.
    myDataSet = new DataSet("myDataSet");
          
    // 创建2个DataTables.
    DataTable tCust = new DataTable("Customers");

    // 创建两个列,并添加到第一个表
    DataColumn cCustID = new DataColumn("custID");
    DataColumn cCustName = new DataColumn("custName");
    DataColumn cCurrent = new DataColumn("custCity");
    tCust.Columns.Add(cCustID);
    tCust.Columns.Add(cCustName);
    tCust.Columns.Add(cCurrent); // 把tables添加到DataSet.
    myDataSet.Tables.Add(tCust);

       
    /* 计算tables.对每个客户,创建DataRow变量 */
    DataRow newRow1;

    // 添加记录到 Customers Table.
    for(int i = 1; i < 4; i++)
    {
    newRow1 = tCust.NewRow();
    newRow1["custID"] = (100*i).ToString();
    tCust.Rows.Add(newRow1);
    } tCust.Rows[0]["custName"] = "【孟宪会之精彩世界】";
    tCust.Rows[1]["custName"] = "net_lover";
    tCust.Rows[2]["custName"] = "http://xml.sz.luohuedu.net/";
    tCust.Rows[0]["custCity"] = "北京";
    tCust.Rows[1]["custCity"] = "上海";
    tCust.Rows[2]["custCity"] = "河南";
    } private void AddCustomDataTableStyle()
    {
    DataGridTableStyle ts1 = new DataGridTableStyle();
    ts1.MappingName = "Customers";
    // 设置属性
    ts1.AlternatingBackColor = Color.LightGray; // 添加Textbox列样式,以便我们捕捉鼠标事件
    DataGridTextBoxColumn TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "custID";
    TextCol.HeaderText = "序号";
    TextCol.Width = 100; //添加事件处理器
    TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
    TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
    ts1.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "custName";
    TextCol.HeaderText = "姓名";
    TextCol.Width = 100;
    //添加事件处理器
    TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
    TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
    ts1.GridColumnStyles.Add(TextCol); TextCol = new DataGridTextBoxColumn();
    TextCol.MappingName = "custCity";
    TextCol.HeaderText = "地址";
    TextCol.Width = 100;
    //添加事件处理器
    TextCol.TextBox.MouseDown += new MouseEventHandler(TextBoxMouseDownHandler);
    TextCol.TextBox.DoubleClick += new EventHandler(TextBoxDoubleClickHandler);
    ts1.GridColumnStyles.Add(TextCol);

    dataGrid1.TableStyles.Add(ts1);

    } protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    private void InitializeComponent()
    {
          this.dataGrid1 = new System.Windows.Forms.DataGrid();
          this.label1 = new System.Windows.Forms.Label();
          ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
          this.SuspendLayout();
          // 
          // dataGrid1
          // 
          this.dataGrid1.CaptionBackColor = System.Drawing.SystemColors.Info;
          this.dataGrid1.CaptionForeColor = System.Drawing.SystemColors.WindowText;
          this.dataGrid1.CaptionVisible = false;
          this.dataGrid1.DataMember = "";
          this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
          this.dataGrid1.Location = new System.Drawing.Point(11, 9);
          this.dataGrid1.Name = "dataGrid1";
          this.dataGrid1.Size = new System.Drawing.Size(368, 144);
          this.dataGrid1.TabIndex = 0;
          this.dataGrid1.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dataGrid1_MouseDown);
          // 
          // label1
          // 
          this.label1.Location = new System.Drawing.Point(4, 166);
          this.label1.Name = "label1";
          this.label1.Size = new System.Drawing.Size(383, 23);
          this.label1.TabIndex = 1;
          this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
          this.label1.Click += new System.EventHandler(this.Form1_Click);
          // 
          // Form1
          // 
          this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
          this.ClientSize = new System.Drawing.Size(387, 201);
          this.Controls.AddRange(new System.Windows.Forms.Control[] {
                                                                      this.label1,
                                                                      this.dataGrid1});
          this.Name = "Form1";
          this.Text = "鼠标双击事件的例子";
          ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
          this.ResumeLayout(false);    }
    #endregion [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void TextBoxDoubleClickHandler(object sender, EventArgs e)
    {
    MessageBox.Show("双击事件发生。鼠标双击到的值:"+((TextBox)sender).Text.ToString());
    } private void TextBoxMouseDownHandler(object sender, MouseEventArgs e)
    {
    if(DateTime.Now < gridMouseDownTime.AddMilliseconds(SystemInformation.DoubleClickTime))
    {
      MessageBox.Show("双击事件发生。鼠标双击到的值:"+((TextBox)sender).Text.ToString());
    }
    label1.Text = "TextBox 鼠标按下了。  ";
    } private void dataGrid1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
    gridMouseDownTime = DateTime.Now;
    label1.Text = "DataGrid1 鼠标按下了。  ";
    }    private void Form1_Click(object sender, System.EventArgs e)
        {
          label1.Text="";
        }
        private void label1_Click(object sender, System.EventArgs e)
        {
          label1.Text="";
        }
    }
      

  3.   

    this.myDataGrid.CurrentCellChanged += new
    System.EventHandler(this.myDataGrid_CurrentCellChanged);///////////////////////private void myDataGrid_CurrentCellChanged(object sender, 
    System.EventArgs e)
    {
       textBox1.Text = "Col is " + myDataGrid.CurrentCell.ColumnNumber
          + ", Row is " + myDataGrid.CurrentCell.RowNumber 
          + ", Value is " + myDataGrid[myDataGrid.CurrentCell];
    }
      

  4.   

    我的原意是鼠标点击DATAGRID某行,然后这行的数据实时显示在form的其他一些textbox中
      

  5.   

    把 dsCustomers1和Customers换成你的
    private void dataGrid1_Click(object sender, System.EventArgs e)
    {
    textBox1.BindingContex[this.dsCustomers1,"Customers"].Position=dataGrid1.BindingContext[this.dsCustomers1.Customers].Position;
    }
      

  6.   

    楼上的兄弟,我要的是在textbox控件中实时显示出数据来,怎么办
      

  7.   

    datagrid的curserchange事件中textbox1.text=mydatagrid(mydatagrid.currentcell.rownumber,0)
    textbox2.text=mydatagrid(mydatagrid.currentcell.rownumber,1)
    ........以此类推
      

  8.   

    textbox控件绑定dataset就行了
    textBox1.DataBindings.Add(new Binding("Text", ds, "customers.custName"));
      

  9.   

    我简单说下我的看法:
    我觉得你如果要在DataGrid中点击,那么DataGrid中至少有一列能像按钮一样触发事件。在这个事件的程序块中,通过“e”的事件触发,比如说:“e.Item.cells[0]”等类似的用法,我很久没有写代码了,只记得就是这个样子就可以了,e代表你触发的那一行的信息,cell代表第几列。接下来就是一个赋值工作,简单的用TextBox.Text=e.Item.cells[0]就OK了,不知道明白我的意思了么?
      

  10.   

    我同样遇到这个问题,我是点击一行后,在一个新的FORM里面显示我所选择的那行的具体数据,现在我能通过
    gridView1_DoubleClick(object sender, System.EventArgs e)
    {
    DataView vue=new DataView(dataSet11.Tables["BugMan"]);
    DataRowView row=vue[1];//这里我只能指定具体的行数
    lookbug.txtProject.Text=row["Porject"].ToString();//LOOKBUG为另外一个FORM
    .......
    }
    来实现,不过我只能实现确定要的是哪行,怎么样才能得到鼠标指定的那个行呢?
      

  11.   

    datagrid的keypress事件中textbox1.text=mydatagrid(mydatagrid.currentcell.rownumber,0)
    textbox2.text=mydatagrid(mydatagrid.currentcell.rownumber,1)
    ........以此类推
    难道不能实现你的需求么?在keypress事件中,朝textbox里添数据不行么?
      

  12.   

    单值绑定,
    http://blog.csdn.net/zhzuo/archive/2005/01/03/238273.aspx
    多值绑定
    http://blog.csdn.net/zhzuo/archive/2004/08/06/67016.aspx
      

  13.   

    txtBox1.Text=(string)gridInfo[gridInfo.CurrentCell.RowNumber,0];