你在msdn里搜一下,还有在论坛里搜一下,一般来说可以判断你点机的位置,论坛里有很多的,
下面是msdn里的一个
ms-help://MS.MSDNQTR.2003FEB.2052/vbcon/html/vbconreturningclickedcellvaluefromdatagrid.htm

解决方案 »

  1.   

    Walkthrough: Creating a Master-Detail Windows Form
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vbwlkwalkthroughcreatingmaster-detailwindowsform.asp
      

  2.   

    datagridcurrentindexrow 的一个事件!代码可以写在那!
      

  3.   

    datagrid 的currentcellchanged 事件!或者doubleclick事件
      

  4.   

    看看是不是你想要的using System;
    using System.Drawing;
    using System.Drawing.Drawing2D ;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.Data.OleDb;
    namespace WinApp
    {
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.DataGrid dataGrid1;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;
    public DataSet ds=new DataSet();
    public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();
    OleDbDataAdapter da=new OleDbDataAdapter("Select * from authors",
    @"provider=Microsoft.Jet.OLEDB.4.0;data source=D:\Pubs.mdb");
    da.Fill(ds);
    this.dataGrid1.DataSource=ds.Tables[0];
    Form2 frm=new Form2(this);
    frm.Show();
    } /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    this.dataGrid1 = new System.Windows.Forms.DataGrid();
    ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
    this.SuspendLayout();
    // 
    // dataGrid1
    // 
    this.dataGrid1.DataMember = "";
    this.dataGrid1.Dock = System.Windows.Forms.DockStyle.Bottom;
    this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
    this.dataGrid1.Location = new System.Drawing.Point(0, 29);
    this.dataGrid1.Name = "dataGrid1";
    this.dataGrid1.Size = new System.Drawing.Size(416, 232);
    this.dataGrid1.TabIndex = 0;
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(416, 261);
    this.Controls.Add(this.dataGrid1);
    this.Name = "Form1";
    this.Text = "Form1";
    ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } }
    public class Form2 : System.Windows.Forms.Form
    {
    private System.Windows.Forms.TextBox textBox1;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null;
    private BindingManagerBase BMB,thisBMB;
    private System.Windows.Forms.TextBox textBox2;
    private System.Windows.Forms.TextBox textBox3;
    private System.Windows.Forms.TextBox textBox4;

    public Form2(Form1 frm)
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent();
    this.textBox1.DataBindings.Add("Text",frm.ds.Tables[0],"au_id");
    this.textBox2.DataBindings.Add("Text",frm.ds.Tables[0],"au_lname");
    this.textBox3.DataBindings.Add("Text",frm.ds.Tables[0],"phone");
    this.textBox4.DataBindings.Add("Text",frm.ds.Tables[0],"address");
    BMB =frm.BindingContext[frm.ds.Tables[0]];
    thisBMB=this.BindingContext[frm.ds.Tables[0]];
    BMB.CurrentChanged+=new EventHandler(bmOrders_CurrentChanged);
    // TODO: Add any constructor code after InitializeComponent call
    //
    } /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if(components != null)
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    this.textBox1 = new System.Windows.Forms.TextBox();
    this.textBox2 = new System.Windows.Forms.TextBox();
    this.textBox3 = new System.Windows.Forms.TextBox();
    this.textBox4 = new System.Windows.Forms.TextBox();
    this.SuspendLayout();
    // 
    // textBox1
    // 
    this.textBox1.Location = new System.Drawing.Point(64, 40);
    this.textBox1.Name = "textBox1";
    this.textBox1.TabIndex = 0;
    this.textBox1.Text = "textBox1";
    // 
    // textBox2
    // 
    this.textBox2.Location = new System.Drawing.Point(64, 80);
    this.textBox2.Name = "textBox2";
    this.textBox2.TabIndex = 1;
    this.textBox2.Text = "textBox2";
    // 
    // textBox3
    // 
    this.textBox3.Location = new System.Drawing.Point(64, 112);
    this.textBox3.Name = "textBox3";
    this.textBox3.TabIndex = 2;
    this.textBox3.Text = "textBox3";
    // 
    // textBox4
    // 
    this.textBox4.Location = new System.Drawing.Point(64, 144);
    this.textBox4.Name = "textBox4";
    this.textBox4.TabIndex = 3;
    this.textBox4.Text = "textBox4";
    // 
    // Form2
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
    this.ClientSize = new System.Drawing.Size(232, 189);
    this.Controls.Add(this.textBox4);
    this.Controls.Add(this.textBox3);
    this.Controls.Add(this.textBox2);
    this.Controls.Add(this.textBox1);
    this.Name = "Form2";
    this.Text = "Form2";
    this.TopMost = true;
    this.ResumeLayout(false); }
    #endregion private void bmOrders_CurrentChanged(object sender, EventArgs e)
    {
    thisBMB.Position=BMB.Position;
    }
    }
    }