【发布时间】:2013-01-31 15:31:36
【问题描述】:
我正在使用表单和 dataGridViews 制作程序。我想允许用户调整表单和 dataGridViews 的大小,就像一个人在他们的电脑上调整 web 浏览器或其他窗口的大小一样。通过单击并拖动窗口的边框。我目前正在使用一个简单的版本来执行此操作。我在面板的一角有一个小图片框,其中包含一个 datGridView,停靠栏设置为 full 并添加了代码:
private void pictureBox11_MouseDown(object sender, MouseEventArgs e)
{
resize = true;
}
private void pictureBox11_MouseUp(object sender, MouseEventArgs e)
{
resize = false;
}
//Resize the Ben. List dataGrid(dataGridView4)
private void pictureBox11_MouseMove(object sender, MouseEventArgs e)
{
if (resize)
{
this.panel4.Height = pictureBox11.Top + e.Y;
this.panel4.Width = pictureBox11.Left + e.X;
}
}
这允许用户做我想做的事,但不是我希望他们做的事。这种方式是可以接受的,但我非常想知道我是否可以用另一种方式来做。 “其他方式”当然是指单击并拖动边框以调整大小的能力。我希望在这里提供一些新的有用信息,将来可以帮助我。那么有什么帮助吗?
【问题讨论】:
-
winforms 中默认调整大小的方式有什么问题?如果您有停靠/锚定控件,为什么要实现自己的机制?你看过
SplitPanel控件吗? -
我不知道为什么我在那个问题中添加了表格。这些表格本身就允许该功能。但 dataGridViews 没有。所以问题是关于dataGridViews。我以前从未使用过 SplitPanel。
-
那么我建议您尝试将 DataGridViews 停靠在一个或多个 SplitPanel 中,看看是否能解决您的问题,如果我理解的话...
-
刚刚尝试了SplitPanel。那也不行。
-
几乎我希望能够通过拖动它的边框来调整 dataGridView 的大小。就像我说的,我现在拥有它的方式有效。我只想知道如何使用控件的边框而不是在角落使用图片框。
标签: c# winforms visual-studio-2010 datagridview resize