0

我有一个带有 2 个树视图的 winform。我的左侧树视图正在加载来自广告服务器的数据,该广告服务器是通过单击按钮加载的。这会触发我的后台工作人员,它会获取我的数据并构建我的树。

现在,在执行此操作时,我将禁用树视图控件并显示一个带有动画 gif 的图片框。因此,当我的后台工作人员完成后,我启用了我的树视图并隐藏了我的图片框。

所以我想要做的是图片框保持在树视图的中心。两个树视图都在一个拆分的容器上。所以也许我需要获取这些面板的边框?因此,当表单的大小发生变化时,我的图片框会很好地保持在树视图的中心。

4

3 回答 3

0

不清楚如何设置表单,但您要么想将逻辑放在表单 Resize 事件或 TreeView Resize 事件中。

当调整任何一个大小时,将图像放置在位置 = TreeView 的一半处,减去图像宽度的一半,重复高度。

于 2009-07-31T14:56:12.897 回答
0
OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}
于 2009-07-31T15:01:10.470 回答
0

创建一个与树视图相同大小和位置的面板。在面板中添加此树视图并将其设置为DockStyle.Fill。将您的图片添加到面板并将锚点设置为AnchorStyles.None

this.panel1.Controls.Add(treeView2);
this.panel1.Controls.Add(pictureBox1);

this.treeView2.Dock = DockStyle.Fill;
this.pictureBox1.Anchor = AnchorStyles.None;

锚样式AnchorStyles.None将使您的图片框保持在面板的中心。将图片框设置在树视图前面。一次,您的处理就结束了,只需隐藏图片框即可。

于 2009-07-31T15:01:29.860 回答