将Windows窗体Picturebox保留在TreeView的中间

时间:2009-07-31 14:49:41

标签: c# winforms treeview picturebox

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

现在,在执行此操作时,我将禁用树视图控件并在其上显示带有GIF动画的图片框。因此,当我的背景工作完成后,我启用了树视图并隐藏了我的图片框。

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}

答案 2 :(得分: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 会将您的图片框保留在面板的中心。将您的图片框设置在树视图前面。一旦你的处理结束,只需隐藏图片框。