int l = this.datagrid.CurrentRowIndex;
DataRow row = this.datagrid.DataSource["l"];
row["字段"].tostring就是你要的东西

解决方案 »

  1.   

    http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=C83C3A4B-8571-4CE6-FBAC-35DC28D14389
      

  2.   

    dataGrid1[dataGrid1.CurrentRowIndex,0].ToString();
                        ^^当前行;      ^->列号
      

  3.   

    1、首先,双击cell根本不会触发你的DataGrid_DoubleClick事件,所以不要在这个地方费工夫了。
    2、取得当前行的语法是:DataRow currentRow = ((DataRowView)this.BindingContext[dataset_name, "datatable_name"].Current).Row;3、如果你确实需要在cell上响应双击事件,大致思路是:通过datagrid的controls属性,写一个循环,为每个DataGridTextBox绑定双击事件,因为双击被这些DataGridTextBox不可挽回地剥夺了。
    4、如果你要响应回车事件,没门!除非派生自己的Column Style。
    9、DataGrid是设计的很糟糕的一个烂东西,许多情况下,不如Delphi的DBGrid好用!
      

  4.   

    在:
    private void dataGrid1_CurrentCellChanged(object sender, System.EventArgs e)
    {
    int iRowNum=this.dataGrid1.CurrentCell.RowNumber;
    //MessageBox.Show("当前行索引值是:"+iRowNum.ToString());
    }
    事件中取得datagrid的选中行的索引值,剩下的事情你就可以用此iRowNum去取datagrid中任意的cell中的值了,比如想取datagrid中当前选中行的第一列的值:
    string myValue=this.datagrid[iRowNum,0].ToString();
    同楼上所说的,也可以那样处理:
    DataTable dt=this.dataset.tabel["mytalbe"];
    DataRow row = dt.rows[iRowNum];//this.datagrid.DataSource[iRowNum];
    row["字段"].tostring就是你要的东西
      

  5.   

    思路:
    使用hitTest来捕捉doubleClick
    再根据坐标到datagrid上去找行,我的思路很麻烦,但一定可以实现。
      

  6.   

    你用DataView做非常方便。不过你的把DataView和表格绑定。一般DataTable都用默认的DataView
      

  7.   

    下面的代码实现了如何得到点击的当前行的数据GetCurrentClickRow.aspx<%@ Page Language="vb" EnableViewState="False" AutoEventWireup="false" 
     Codebehind="GetCurrentClickRow.aspx.vb" Inherits="aspxWeb.mengxianhui.com.GetCurrentClickRow"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
      <HEAD>
        <title>GetCurrentClickRow</title>
        <meta content="Microsoft Visual Studio.NET 7.0" name="GENERATOR">
        <meta content="Visual Basic 7.0" name="CODE_LANGUAGE">
        <meta content="JavaScript" name="vs_defaultClientScript">
        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema">
      </HEAD>
      <body style="FONT-SIZE: 9pt" MS_POSITIONING="GridLayout">
        <form id="Form1" method="post" runat="server">
          <asp:Panel id="Panel1" runat="server">
            <asp:Label id="label1" Runat="server"></asp:Label>
            <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False" CellPadding="4"
            BackColor="White" BorderWidth="1px" BorderStyle="None" BorderColor="#CC9966">
              <ItemStyle ForeColor="#330099" BackColor="White" Font-Size="9pt"></ItemStyle>
              <HeaderStyle Font-Bold="True" ForeColor="#FFFFCC" BackColor="#990000" Font-Size="9pt"></HeaderStyle>
              <Columns>
                <asp:BoundColumn DataField="Title"></asp:BoundColumn>
                <asp:BoundColumn DataField="CreateDate"></asp:BoundColumn>
              </Columns>
            </asp:DataGrid>
          </asp:Panel>
        </form>
      </body>
    </HTML>GetCurrentClickRow.aspx.vbImports System
    Imports System.Data
    Imports System.Data.OleDbPublic Class GetCurrentClickRow
      Inherits System.Web.UI.Page
      Protected WithEvents Panel1 As System.Web.UI.WebControls.Panel
      Protected WithEvents label1 As System.Web.UI.WebControls.Label
      Protected WithEvents DataGrid1 As System.Web.UI.WebControls.DataGrid#Region " Web Form Designer Generated Code "
      <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
      End Sub  Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) _
       Handles MyBase.Init
        InitializeComponent()
      End Sub#End Region  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) _
       Handles MyBase.Load
        label1.Text = "获得所点击行的例子"
        label1.Font.Bold = True
        Panel1.HorizontalAlign = HorizontalAlign.Center
        DataGrid1.Columns(0).HeaderText = "文章标题"
        DataGrid1.Columns(1).HeaderText = "发布时间"
        DataGrid1.HeaderStyle.HorizontalAlign = HorizontalAlign.Center
        DataGrid1.AlternatingItemStyle.BackColor = System.Drawing.Color.Ivory
        DataGrid1.HorizontalAlign = HorizontalAlign.Center
        Dim cnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
         + Server.MapPath("Test.mdb")
        Dim cn As New OleDbConnection(cnString)
        cn.Open()
        Dim strSQL As String = "SELECT TOP 10 Title,CreateDate FROM Document ORDER BY CreateDate DESC"
        Dim cmd As New OleDbCommand(strSQL, cn)
        DataGrid1.DataSource = cmd.ExecuteReader
        DataGrid1.DataBind()
        cn.Close()
        cn.Dispose()
        cn = Nothing
      End Sub  Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, _
     ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
        If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
          e.Item.Attributes.Add("onclick", "this.style.backgroundColor='#FFCC66';alert('您点击的是:\n\n第" _
     + e.Item.ItemIndex.ToString() + "行\n\n文章标题是:" + e.Item.Cells(0).Text.Replace(",", "\'") + "')")
          e.Item.Cells(1).Text = Format(System.Convert.ToDateTime(e.Item.Cells(1).Text.ToString()), "yyyy年M月d日")
          If e.Item.Cells(0).Text.Length > 30 Then
            e.Item.Attributes.Add("Title", e.Item.Cells(0).Text)
            e.Item.Cells(0).Text = e.Item.Cells(0).Text.Substring(0, 28) + "…"
          End If
        End If
      End SubEnd Class
      

  8.   

    以下是C#代码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="";
        }
    }
    }
      

  9.   

    用hittest看看~
    System.Drawing.Point pt=new Point(e.X,e.Y);
    DataGrid.HitTestInfo hit = this.dataGridperson.HitTest(pt); 
    if(hit.Type == DataGrid.HitTestType.Cell)  

    this.dataGridperson.CurrentCell = new DataGridCell(hit.Row, hit.Column); 
    this.dataGridperson.Select(hit.Row); 
    }
      

  10.   

    比如说,两张表分别对应两条数据
    select code,name from table1
    select code,relationno,address from table2dataset ds 存储上述两张表(关系=code)并 赋给DataGrid,  datagrid.datasource=ds;展开第二条记录在双击子表第一条行头,理论上CurrentRowIndex=0,RowNumber=0.
    DataGrid显示:
         a, jack
           a,1,guangdong
           a,2,beijing
         b, john 
           b,1,shanghai                   //点击这条,请帮帮看看结果
           b,2,shenzhen 
        我的做法是:
    ds=(DataSet)datagrid.DataSource;
    dv=ds.Tables[1].DefaultView;
    dr=dv[CurrentRowIndex].Row;
    ................