【问题标题】:adding a numericup down in a syncfusion grid control在同步融合网格控件中添加 numericup down
【发布时间】:2012-06-19 19:05:30
【问题描述】:

Reg windows 窗体同步融合、网格控制 我正在尝试添加一个弹出框,就像我们在 xcel 中的弹出框一样。在右键单击一个单元格然后插入时,会出现一个小弹出框,询问需要插入多少行。

这就是我所做的

private void InsertRowToolStripMenuItem_Click(object sender, EventArgs e)
        {
           GridRangeInfoList list;

            list  = theGrid.Selections.GetSelectedRows(true, false);
            int rowNumber = list.ActiveRange.Top;
            Panel box = new Panel(); //
            NumericUpDown ud1 = new NumericUpDown(); 

            ud1.Dock = DockStyle.Left;  ud1.Width = 30; 
            ud1.BorderStyle = BorderStyle.FixedSingle;
            box.Controls.Add(ud1); 
            box.BorderStyle = BorderStyle.None;
            Button btn = new Button();
            btn.Dock = DockStyle.Bottom;
            btn.Text = "OK";
            box.Controls.Add(btn);

            this.Controls.AddRange(new System.Windows.Forms.Control[] { box }); 
            btn.Click += new EventHandler(btn_Click);
            theGrid.Controls.Add(box);
            box.Dock = DockStyle.Bottom;
            box.Show();
            numberOfRowstobeInserted = (int)ud1.Value;
            this.Controls.Add(box); 
            theData.CreateRowsToInsert(rowNumber, numberOfRowstobeInserted);

            theGrid.Refresh();
}

但是这种添加带有数字上下的面板的方法似乎不起作用。基本上,一旦单击插入,我想要一个带有数字上下和按钮的小窗口/面板。 用户从上/下选择一个值,然后单击确定按钮。

有什么建议吗?

谢谢 孙

【问题讨论】:

    标签: c# visual-studio-2010 numericupdown gridcontrol syncfusion


    【解决方案1】:

    您可以处理以下修改后的代码以使其正常工作。

        private Panel box;
        private NumericUpDown ud1;
        private Button btn;        
        int rowNumber, rowIndex, colIndex;
        GridStyleInfo style;
    
        void ContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            rowNumber = this.gridGroupingControl1.Table.CurrentRecord.GetSourceIndex();
            rowIndex = this.gridGroupingControl1.TableControl.CurrentCell.RowIndex;
            colIndex = this.gridGroupingControl1.TableControl.CurrentCell.ColIndex;
            style = this.gridGroupingControl1.TableControl.GetViewStyleInfo(rowIndex,colIndex);
            box = new Panel(); // 
            ud1 = new NumericUpDown();
    
            ud1.Location = new Point(15, 15);
            ud1.Size = new Size(50, 10);
            ud1.BorderStyle = BorderStyle.FixedSingle;
            box.Controls.Add(ud1);
            box.BorderStyle = BorderStyle.None;
    
            btn = new Button();
            btn.Location = new Point(30, 50);
            btn.Size = new Size(30,20);
            btn.Text = "OK";
            btn.Click += new EventHandler(btn_Click);
            box.Controls.Add(btn);
    
            box.Location = this.gridGroupingControl1.TableControl.CurrentCell.Renderer.GetCellLayout(rowIndex, colIndex, style).ClientRectangle.Location;
            box.Size = new Size(80, 70);
    
            this.gridGroupingControl1.Controls.Add(box);
            box.Show();
            box.BringToFront();
        }
    
        void btn_Click(object sender, EventArgs e)
        {
            int numberOfRowstobeInserted = (int)ud1.Value;
            DataTable dt = (this.gridGroupingControl1.DataSource as DataView).Table;
            for (int count = 0; count < numberOfRowstobeInserted; count++)
            {
                DataRow dr = dt.NewRow();
                for (int i = 0; i < dt.Columns.Count; i++)
                    dr[i] = 0; //default value
                dt.Rows.InsertAt(dr, rowNumber++);
            }
            box.Dispose();
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多