الانتقال إلى المحتوى الرئيسي

كيفية مزامنة لوحة التمرير في سبليتكونتينر في Vb.Net

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

ومع ذلك ، عند التمرير عبر المحتويات داخل لوحات سبليتكونتينر ، لا تتم مزامنتها افتراضيا. قد يكون هذا غير مريح للمستخدمين ، خاصة عندما تحتوي اللوحات على كمية كبيرة من البيانات.

في هذه المقالة ، سوف ننظر في كيفية مزامنة لوحة التمرير في سبليتكونتينر في Vb.net . وسوف ننظر في نهجين: استخدام خاصية التمرير للوحات واستخدام حدث لوحات التمرير.

  1. كيفية تنفيذ تزامن التمرير في سبليتكونتينر في Vb.net
  2. إنشاء حاوية تقسيم في Vb.net
  3. تكوين خصائص سبليتكونتينر
  4. إضافة عناصر تحكم إلى حاوية الانقسام
  5. تنفيذ ضوابط التمرير
  6. لوحة المزامنة التمرير في سبليتكونتينر
  7. سؤال وجواب
  8. كيفية تنفيذ تزامن التمرير لوحة في سبليتكونتينر في Vb.net ?
  9. ما هي الفئات التي يجب استخدامها لتنفيذ تزامن تمرير اللوحة في حاوية الانقسام في Vb.net ?
  10. ما هي الأساليب والخصائص المستخدمة لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net ?
  11. هل من الممكن لمزامنة لوحة التمرير في سبليتكونتينر في رموز.صافي أفقيا?
  12. هل هناك تنفيذ جاهز لمزامنة تمرير اللوحة في حاوية الانقسام في Vb.net ?
  13. هل من الممكن مزامنة التمرير من لوحات في حالات مختلفة من سبليتكونتينر في Vb.net ?

كيفية تنفيذ تزامن التمرير في سبليتكونتينر في Vb.net

سبليتكونتينر هي واحدة من الضوابط الأكثر شيوعا في أشكال ويندوز التي تسمح لك لتقسيم حاوية إلى لوحين. ومع ذلك ، افتراضيا ، سبليتكونتينر لا يوفر القدرة على مزامنة التمرير بين اللوحات. في هذه المقالة ، سوف ننظر في كيفية تنفيذ تزامن التمرير بين اللوحات في سبليتكونتينر باستخدام Vb.net .

من أجل تنفيذ تزامن التمرير في سبليتكونتينر ، سوف نستخدم الحدث التمرير من كل لوحة لتحديث التمرير من لوحة أخرى. لنلق نظرة على الخطوات المطلوبة لإكمال هذه المهمة:

  • أضف حاوية تقسيم إلى نموذج الطلب عبر منشئ المصمم…
  • تعيين خاصية التمرير التلقائي لكل من لوحات سبليتكونتينر إلى صحيح لتمكين التمرير التلقائي.
  • قم بتعريف المتغيرات لتخزين مواضع تمرير اللوحة الحالية:

لوحة خافتة 1 كرولبوس كعدد صحيح = 0

لوحة خافتة 2كرولبوس كعدد صحيح = 0

Далее, в обработчике события Scroll каждой панели добавьте код для обновления прокрутки другой панели:

Private Sub panel1_Scroll(sender As Object, e As ScrollEventArgs) Handles panel1.Scroll

If panel1ScrollPos panel1.VerticalScroll.Value Then

panel1ScrollPos = panel1.VerticalScroll.Value

panel2.VerticalScroll.Value = panel1.VerticalScroll.Value

panel2.PerformLayout()

End If

End Sub

Private Sub panel2_Scroll(sender As Object, e As ScrollEventArgs) Handles panel2.Scroll

If panel2ScrollPos panel2.VerticalScroll.القيمة ثم

لوحة2الكرولبوس = لوحة2.فيرتيكالسكرول.القيمة

لوحة1.فيرتيكالسكرول.القيمة = لوحة2.فيرتيكالسكرول.القيمة

لوحة1.بيرفورملايوت()

نهاية إذا

نهاية الفرعية

الآن ، عند التمرير إحدى اللوحات ، سيتم تحديث قيمة التمرير في اللوحة الأخرى ، مما يضمن مزامنة التمرير.

في الختام ، نظرنا في هذه المقالة في كيفية تنفيذ تزامن التمرير بين اللوحات في حاوية الانقسام باستخدام Vb.net . وهذا سوف يسمح لك لخلق المزيد من واجهات المستخدم سهلة الاستخدام وظيفية لتطبيقات نماذج ويندوز الخاص بك.

إنشاء حاوية تقسيم في Vb.net

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

لإنشاء حاوية تقسيم في Vb.net اتبع الخطوات التالية:

  1. افتح نموذجا موجودا أو أنشئ نموذجا جديدا في المشروع Vb.net .
  2. ضع عنصر سبليتكونتينر على النموذج عن طريق سحبه من شريط الأدوات.
  3. تخصيص خصائص عنصر سبليتكونتينر ترضيك. على سبيل المثال ، يمكنك تعيين الأحجام الأولية للمناطق ، وتعيين الاتجاه (أفقيا أو رأسيا) ، وتعيين قيمة خاصية فيكسيدبانيل بحيث تكون إحدى المناطق ذات حجم ثابت ، وما إلى ذلك.
  4. Внутри областей SplitContainer можно добавить другие элементы управления или контент, такие как текстовые поля, кнопки, таблицы и т. д.

Пример кода на Vb.net для создания SplitContainer:

Imports System

Imports System.Windows.Forms

Public Class MainForm

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load

Dim splitContainer As New SplitContainer()

splitContainer.Dock = DockStyle.Fill

splitContainer.FixedPanel = FixedPanel.Panel1

splitContainer.Orientation = Orientation.Vertical

Dim panel1 As New Panel()

panel1.BackColor = Color.Red

splitContainer.Panel1.Controls.Add(panel1)

Dim panel2 As New Panel()

panel2.BackColor = Color.Blue

splitContainer.Panel2.Controls.Add(panel2)

Me.Controls.Add(splitContainer)

End Sub

End Class

В этом примере создается экземпляр класса SplitContainer и устанавливаются несколько его свойств. ثم يتم إنشاء لوحتين (اللوحة 1 واللوحة 2) ، والتي تتم إضافتها إلى المناطق المقابلة من حاوية الانقسام. أخيرا ، يتم إضافة حاوية الانقسام إلى النموذج. نتيجة لذلك ، عند تشغيل التطبيق ، سيتم إنشاء حاوية تقسيم مع منطقتين ، حيث سيكون للمنطقة الأولى خلفية حمراء والثانية خلفية زرقاء.

تكوين خصائص سبليتكونتينر

سبليتكونتينر هو عنصر تحكم في أشكال ويندوز التي تسمح لك لتقسيم حاوية إلى لوحين التي يمكن تغيير حجمها عن طريق تحريك الشريط الفاصل. يوفر القدرة على إنشاء نوافذ مقسمة مع دعم مزامنة التمرير.

يتم استخدام السمات التالية لتكوين خصائص سبليتكونتينر:

  • الاتجاه: يحدد اتجاه الفاصل. يمكن أن يكون أفقيا أو رأسيا. بشكل افتراضي ، يتم تعيين الاتجاه إلى أفقي.
  • فيكسيدبانيل: يحدد اللوحة التي سيكون لها حجم ثابت ، وستتغير اللوحة الأخرى عند تغيير حجم الحاوية. يمكن ضبط القيمة على لا شيء (لا توجد لوحة ثابتة) أو لوحة1 (اللوحة الأولى ثابتة) أو لوحة2 (اللوحة الثانية ثابتة). القيمة الافتراضية هي لا شيء.
  • سبليترديستانس: يحدد الموضع الأولي للفاصل بالبكسل. يجب أن تكون القيمة بين الانقسام وعرض الحاوية. إذا كان يجب أن يكون الفاصل في وسط الحاوية ، فيمكنك ضبط القيمة على نصف عرض الحاوية. بشكل افتراضي ، يتم تعيين الفاصل في منتصف الحاوية.
  • سبليتروايدث: يحدد عرض الفاصل بالبكسل. القيمة الافتراضية هي 4.
  • إيسبليتيرفيكد: يحدد ما إذا كان يمكن للمستخدم تغيير حجم الفاصل. إذا تم ضبطه على صحيح ، فلن يتمكن المستخدم من تغيير حجم الفاصل. إذا تم ضبطه على خطأ ، فسيتمكن المستخدم من تغيير حجم الفاصل. По умолчанию установлено значение false.

Пример настройки свойств SplitContainer:

«`vb

Dim mySplitContainer As New SplitContainer()

mySplitContainer.Dock = DockStyle.Fill

mySplitContainer.Orientation = Orientation.Horizontal

mySplitContainer.FixedPanel = FixedPanel.Panel1

mySplitContainer.SplitterDistance = 200

mySplitContainer.SplitterWidth = 6

mySplitContainer.IsSplitterFixed = False

«`

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

سبليتكونتينر هو عنصر تحكم سهل الاستعمال الذي يجعل من السهل لخلق تقسيم النوافذ مع دعم تزامن التمرير. يتيح لك تكوين خصائصه التحكم بشكل أكثر مرونة في سلوكه ومظهره.

إضافة عناصر تحكم إلى حاوية الانقسام

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

لإضافة عناصر تحكم داخل القسمحاوية ، سوف تحتاج إلى الوصول إلى لوحات التحكم. تحتوي حاوية الانقسام على لوحين: لوحة1 ولوحة2. يمكنك الوصول إليها باستخدام خصائص سبليتكونتينر.اللوحة 1 وحاوية الانقسام.لوحة2.

يوضح مثال الكود أدناه كيفية إنشاء عنصر تحكم وإضافته إلى اللوحة 1:

زر خافت كزر جديد ()

زر.النص = " انقر فوق لي!"

انقسامحاوية 1.لوحة1.الضوابط.إضافة (زر)

في هذا المثال ، أنشأنا زرا جديدا وأعطناه النص"انقر فوقي!". ثم أضفنا هذا الزر إلى اللوحة 1 باستخدام عناصر التحكم.إضافة () طريقة. سيتم الآن عرض الزر داخل اللوحة1.

يمكنك إضافة مقابض أو عناصر تحكم أخرى إلى اللوحة 1 أو اللوحة 2. سيتم استخدام نهج مماثل للوحة 2:

مربع نص خافت كمربع نص جديد()

مربع النص.النص = "أدخل النص"

انقسامحاوية 1.لوحة2.الضوابط.إضافة (مربع نص)

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

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

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

في الختام ، إضافة عناصر تحكم داخل سبليتكونتينر هو وسيلة سهلة ومريحة لتخصيص واجهة المستخدم في فيسوال بيسيك. أضف () لإضافة عنصر تحكم إلى اللوحة 1 واللوحة 2. لا تنس أن تأخذ في الاعتبار تغيير حجم اللوحات عند وضع عناصر التحكم.

تنفيذ ضوابط التمرير

عند إنشاء واجهة مستخدم باستخدام لوحات سبليتكونتينر في Vb.net هناك حاجة لمزامنة التمرير من الضوابط داخل لوحات مختلفة. يتيح لك ذلك توفير تجربة أكثر سهولة في الاستخدام وضمان عرض متسق للبيانات.

في Vb.net لا توجد طريقة مضمنة لمزامنة عناصر التحكم في التمرير تلقائيا داخل لوحات حاوية تقسيم مختلفة. ومع ذلك ، يمكنك تنفيذ هذه الوظيفة يدويا باستخدام أحداث التمرير وطرق التحكم.

لمزامنة التمرير ، الخطوات التالية ضرورية:

  1. تتبع حدث التمرير لأحد عناصر التحكم في حاوية الانقسام.
  2. في معالج الحدث ، تعيين التمرير لعناصر التحكم الأخرى في سبليتكونتينر.

النظر في مثال على التمرير اثنين من ليستبوكسيس داخل سبليتكونتينر:

  1. دعونا إضافة سبليتكونتينر إلى النموذج.
  2. داخل لوحة سبليتكونتينر الأولى ، إضافة ليستبوكس 1 مع البيانات.
  3. داخل لوحة سبليتكونتينر الثانية ، إضافة ليستبوكس 2 مع البيانات.
  4. في رمز معالج الحدث التمرير ل ليستبوكس 1 ، سنقوم بتعيين التمرير ل ليستبوكس 2.
  5. في رمز معالج الحدث التمرير ل ليستبوكس 2 ، سنقوم بتعيين التمرير ل ليستبوكس 1.

Код обработчика события Scroll для ListBox1 будет выглядеть так:

«`vb.net

Private Sub ListBox1_Scroll(ByVal sender As Object, ByVal e As EventArgs) Handles ListBox1.Scroll

ListBox2.TopIndex = ListBox1.TopIndex

End Sub

«`

А код обработчика события Scroll для ListBox2 будет выглядеть так:

«`vb.net

Private Sub ListBox2_Scroll(ByVal sender As Object, ByVal e As EventArgs) Handles ListBox2.Scroll

ListBox1.TopIndex = ListBox2.TopIndex

End Sub

«`

وهكذا ، عند التمرير واحدة من ليستبوكس في سبليتكونتينر ، فإن ليستبوكس الثاني التمرير تلقائيا إلى نفس الموقف.

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

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

لوحة المزامنة التمرير في سبليتكونتينر

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

من أجل مزامنة التمرير من لوحات في سبليتكونتينر ، يمكنك استخدام الخوارزمية التالية:

  1. إنشاء معالج حدث التمرير للوحة الأولى. في هذا المعالج ، تحتاج إلى ضبط موضع التمرير للوحة الثانية على موضع التمرير للوحة الأولى.

  2. إنشاء معالج حدث التمرير للوحة الثانية. في هذا المعالج ، تحتاج إلى ضبط موضع التمرير للوحة الأولى على موضع التمرير للوحة الثانية.

مثال رمز لمزامنة لوحة التمرير في سبليتكونتينر:

'انتقل معالج الحدث للوحة الأولى

لوحة فرعية خاصة1_تمرير(المرسل ككائن ، ه كما سكروليفينتارغس) يعالج لوحة1.التمرير

لوحة2.فيرتيكالسكرول.القيمة = لوحة1.فيرتيكالسكرول.القيمة

نهاية الفرعية

'انتقل معالج الحدث للوحة الثانية

لوحة فرعية خاصة2_التمرير(المرسل ككائن ، ه كما سكروليفينتارغس) يعالج اللوحة2.التمرير

لوحة1.فيرتيكالسكرول.القيمة = لوحة2.فيرتيكالسكرول.القيمة

نهاية الفرعية

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

سؤال وجواب

كيفية تنفيذ تزامن التمرير لوحة في سبليتكونتينر في Vb.net ?

لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net يمكنك استخدام الحدث التمرير لوحات وتعيين قيمة فيرتيكالسكرول.قيمة الممتلكات لبقية اللوحات في ذلك.

ما هي الفئات التي يجب استخدامها لتنفيذ تزامن تمرير اللوحة في حاوية الانقسام في Vb.net ?

لتنفيذ تزامن التمرير لوحة في سبليتكونتينر في Vb.net يمكنك استخدام لوحة ، سكروليفنتارغس ، و سكروليفينثاندلر الطبقات.

ما هي الأساليب والخصائص المستخدمة لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net ?

لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net يتم استخدام أساليب سيتسكرولستات و جيتسكرولستات والقيمة والخصائص القصوى.

هل من الممكن لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net أفقيا?

نعم ، فمن الممكن لمزامنة لوحة التمرير في سبليتكونتينر في Vb.net عموديا وأفقيا. للقيام بذلك ، استخدم الخصائص والأساليب المناسبة.

هل هناك تنفيذ جاهز لمزامنة تمرير اللوحة في حاوية الانقسام في Vb.net ?

في Vb.net لا يوجد تنفيذ جاهز لمزامنة تمرير اللوحة في سبليتكونتينر ، ولكن يمكن تنفيذ هذه المهمة باستخدام الفئات والأساليب المذكورة أعلاه.

هل من الممكن مزامنة التمرير من لوحات في حالات مختلفة من سبليتكونتينر في Vb.net ?

نعم ، تزامن لوحة التمرير في حالات مختلفة من سبليتكونتينر في Vb.net ومن الممكن أيضا. للقيام بذلك ، استخدم الأساليب والخصائص المناسبة لكل مثيل.