我们可以像调整窗口大小一样调整Datagridview的大小吗?

时间:2012-07-24 16:59:23

标签: c# winforms datagridview

我想让用户能够调整datagridview的大小,比如调整窗口大小。我的意思是,当鼠标越过窗口的边缘时,它会变为双向箭头,你可以调整窗口大小。这样可以在winforms中这样做?

2 个答案:

答案 0 :(得分:2)

虽然我完全同意Tergiver这样的设计应该几乎总是被拒绝,但是我记得当需要在表单上显示一些图像并且用户想要出于某种原因调整图片框的大小时,我会记得创建类似的东西。因此,如果它绝对必要或学术上你可以尝试这样的事情:

将Grid添加到面板中将图片框添加到面板,现在将网格停靠为填充以便占用所有面板空间并且图片框浮动在DataGridView上方,您可能需要更改图片的z-index盒子,以防它低于网格。将图片框的“锚点”属性从“上”,“左”更改为“底部”,右键在网格的右下角完美对齐,使图片框尽可能小,以使其不会遮挡网格中的任何单元格。将一个抓取器图像添加到图片框中,该图片将用于拖动整个内容并将图片框的光标设置为SizeNWSE。将图片框的背景色和抓手图像混合好,使其看起来像是网格的一部分。现在像这样处理图片框的鼠标移动事件:

  private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
    {
        if (e.Button == System.Windows.Forms.MouseButtons.Left)
        {
            this.panel1.Height = pictureBox1.Top + e.Y; 
            this.panel1.Width = pictureBox1.Left + e.X;
        }
    }

Panel1是我们停靠Grid的面板,picturebox1是网格上的图片框。

答案 1 :(得分:1)

尽管可能,但这样做没有意义。相反,你应该锚定/停靠DGV,以便用户可以调整整个表格的大小,DGV也会效仿。

在这里,您可以找到有关如何在WinForms中布局控件的信息。 http://msdn.microsoft.com/en-us/library/ms951306.aspx