form - c# graduation projects



عناصر التحكم توسيط داخل نموذج في. NET(Winforms)؟ (7)

هذا السؤال لديه بالفعل إجابة هنا:

أحاول توسيط تحكم حجم ثابت داخل نموذج.

بغض النظر عن الفائدة ، هل هناك طريقة غير أحمق للقيام بذلك؟ ما أريد حقا هو شيء مماثل لخاصية CSS المغلق للنص.

في هذه اللحظة ، أقوم بتعيين خاصية المساحة المحيطة للنموذج المحيط إلى حجم مناسب وتعيين الخاصية Dock لعنصر التحكم لملئه.

https://ffff65535.com


أعلى اليسار والخاصية الأعلى إذا تم تكبير النافذة الأصل.


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


لقد وجدت طريقة رائعة لفعل ذلك وستعمل مع عناصر تحكم متعددة. إضافة TableLayout مع 3 أعمدة. اجعل عمود المركز بحجم مطلق (مهما كانت المساحة التي تحتاجها). اضبط العمودين الخارجيين على 100٪. إضافة لوحة إلى العمود الأوسط وإضافة أي عناصر تحكم تحتاج إليها ووضعها في المكان الذي تريده. ستبقى لوحة المركز هذه متمركزة في النموذج الخاص بك.


نظرًا لأنك لا تذكر ما إذا كان بإمكان النموذج تغيير حجمه أم لا ، فهناك طريقة سهلة إذا كنت لا تهتم بتغيير الحجم (إذا كنت مهتمًا ، فاذهب إلى حل Mitch Wheats):

حدد عنصر التحكم -> تنسيق (خيار القائمة) -> توسيط في الإطار -> أفقيًا أو رأسيًا


يمكنك وضع جميع عناصر التحكم على اللوحة ، ثم كتابة رمز لنقل اللوحة إلى مركز النموذج الخاص بك.

panelMain.Location = 
    new Point(ClientSize.Width / 2 - panelMain.Size.Width / 2, 
              ClientSize.Height / 2 - panelMain.Size.Height / 2);

panelMain.Anchor = AnchorStyles.None;

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


myControl.Left = (this.ClientSize.Width - myControl.Width) / 2 ;
myControl.Top = (this.ClientSize.Height - myControl.Height) / 2;




center-align