سؤال

لدي winform مع 2 treeviews.يساري treeview يتم تحميل البيانات من adserver التي يتم تحميلها عن طريق النقر على زر.هذا الشعر backgroundworker الذي جلب البيانات و يبني شجرة بلدي.

الآن حين نفعل هذا أنا تعطيل عنصر تحكم treeview و عرض picturebox مع الرسوم المتحركة gif على ذلك.لذا عندما backgroundworker الانتهاء يمكنني تمكين ظهري treeview و إخفاء بلدي picturebox.

إذا ما أريد القيام به هو أن picturebox يبقى في مركز treeview.كل treeviews على انقسم الحاوية.لذلك ربما كنت بحاجة للحصول على حدود تلك اللوحات ؟ حتى عندما يكون حجم النموذج ، picturebox يبقى لطيف في مركز مدينة treeview.

هل كانت مفيدة؟

المحلول

إنشاء الفريق من نفس الحجم و الموقع الخاص بك treeview.هذا إضافة treeview في الفريق و تعيين إلى DockStyle.ملء.إضافة صورتك إلى الفريق وتعيين مرساة AnchorStyles.لا شيء.

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

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

مرساة نمط AnchorStyles.لا شيء سوف تبقى صورتك مربع في وسط الفريق.تعيين مربع صورة أمام شجرة الرأي.مرة معالجة الخاص بك هو أكثر من مجرد إخفاء الصورة مربع.

نصائح أخرى

وليس واضحا على كيفية إعداد النموذج الخاص بك، ولكنك إما تريد وضع المنطق في شكل تغيير حجم الحدث أو الحدث تريفيف تغيير الحجم.

عند إما يتم تغيير حجم، ووضع صورة في الموقع = نصف الطريق عبر تريفيف، ناقص نصف widht من الصور الخاصة بك، وتكرار للارتفاع.

OnFormResize()
{
  Point ul = new Point((Form.ClientRectangle.Width - pictureBox1.Width) / 2,
      (Form.ClientRectangle.Height - pictureBox1.Height) / 2);
  pictureBox1.Location = ul;
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top