在一个GridView中,添加一个右键菜单,然后对当前选中的GridView中的行进行操作。请问如何用右键菜单选中到当前GridView中的当前行,并进行相关操作。注意是 DevExpress 控件中gridcontrol 谢谢各位大大了

解决方案 »

  1.   

     //选中当前行的值
            private void gridView1_RowClick(object sender, DevExpress.XtraGrid.Views.Grid.RowClickEventArgs e)
            {    
                this.CzyId = int.Parse(this.gridView1.GetFocusedRowCellValue("CzyId").ToString());
                this.CzyXm = this.gridView1.GetFocusedRowCellValue("CzyXm").ToString();
                this.CzyBm = this.gridView1.GetFocusedRowCellValue("CzyBm").ToString();
                this.CzyMm = this.gridView1.GetFocusedRowCellValue("CzyMm").ToString();
                this.CzyZw = this.gridView1.GetFocusedRowCellValue("CzyZw").ToString();
                this.CzyBz = this.gridView1.GetFocusedRowCellValue("Bz").ToString();
                this.OnlyTag = int.Parse(this.gridView1.GetFocusedRowCellValue("OnlyTag").ToString());            
            }
                this.gridView1.GetFocusedDataRow
                this.gridview1.GetFocus.........
      

  2.   

    ls,我说的是  DevExpress 控件中的GridControl 啊,那个gridView 都没有GetFocusedRowCellValue这个函数啊
      

  3.   

       private void gridView1_MouseDown(object sender, MouseEventArgs e)
            {
                DevExpress.XtraGrid.Views.Grid.ViewInfo.GridHitInfo hInfo = gridView1.CalcHitInfo(new Point(e.X,e.Y));
                if (e.Button == MouseButtons.Left && e.Clicks == 2)
                {
                    if (hInfo.InRow)
                    {}
                }
             }
                 
    private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
            {
                System.Windows.Forms.DataGridView.HitTestInfo hti = dataGridView1.HitTest(e.X, e.Y);            if ((e.Button == MouseButtons.Right) && (hti.Type == DataGridViewHitTestType.RowHeader))
                {
                    dataGridView1.ContextMenuStrip = contextMenuStrip1;
                }
                else
                {
                    dataGridView1.ContextMenuStrip = null;
                }
     }
      

  4.   

    //为GridView添加右键菜单
    1、注册事件
    MainGridView.ShowGridMenu += new GridMenuEventHandler(MainGridView_ShowGridMenu);
    //说明:该事件在用户在GridView上点击右键时触发,Menu对象为:ContextMenu不是 PopupMenu2、事件方法
    void MainGridView_ShowGridMenu(object sender, GridMenuEventArgs e)
    {
        GridView gridView = sender as GridView;
        if (gridView != null)
        {
            GridHitInfo hi = gridView.CalcHitInfo(e.Point);
            //如果为新加行,返回
            if (hi.RowHandle == GridControl.NewItemRowHandle)
            {
                return;
            }
            //GridView上右击不会设置FocusedRow,手动设置
            if (hi.RowHandle >= 0)
            {
                gridView.FocusedRowHandle = hi.RowHandle;
            }
    //在右击的地方为:数据行,或者 行指示处时,弹出上下文菜单
            if ((hi.HitTest == GridHitTest.RowCell || hi.HitTest == GridHitTest.RowIndicator))
            {
                ContextMenu menu = GenContextMenu();

                menu.Show(gridView.GridControl, e.Point);
            }
        }
    }
      

  5.   

     try
                {
                    Point point = new Point(e.X,e.Y);
                    GridHitInfo info=  this.gridView1.CalcHitInfo(point);
                    if ((e.Button == MouseButtons.Right) && (info.Column.Name =="col班级"))
                    {
                        this.contextMenuStrip1.Visible = true;
                    }
                    else
                    {
                        this.contextMenuStrip1.Visible = false;
                    }
                }
                catch (Exception)
                {
                    
                }