نص ترتكز على نموذج على جميع الاطراف 4 لا يتم عرض بشكل صحيح

StackOverflow https://stackoverflow.com/questions/318632

سؤال

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

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

لقد سمعت أحدا من هذا، وإذا كان الأمر كذلك، كنت قادرا على العثور على الحل؟

وشكرا!

وUPDATE:

وهنا بعض من قانون مصمم حسب الطلب جريج D'الصورة (أنا بما في ذلك الأشياء التي كان علي القيام به مع النص نفسه فقط، وليس غيرها من الضوابط):

Friend WithEvents txtRecommendationText1 As System.Windows.Forms.TextBox

<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
    Me.txtRecommendationText1 = New System.Windows.Forms.TextBox

    ' ...snip...

    'txtRecommendationText1

    Me.txtRecommendationText1.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
                Or System.Windows.Forms.AnchorStyles.Left) _
                Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
    Me.txtRecommendationText1.Location = New System.Drawing.Point(4, 127)
    Me.txtRecommendationText1.Multiline = True
    Me.txtRecommendationText1.Name = "txtRecommendationText1"
    Me.txtRecommendationText1.Size = New System.Drawing.Size(223, 149)
    Me.txtRecommendationText1.TabIndex = 10
End Sub

وANOTHER UPDATE:

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

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

المحلول 3

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

نصائح أخرى

والمترجمة Form الخاصة بك؟ التحقق من ملفات الموارد من أجل إدخال مع Textbox.Size، حذف هو وإعادة تعيين الحجم.
وForm بك الموروثة وهو Textbox على baseform؟ حاول إعداد معدل وصول Textbox في المحمية أو العامة.
هل نفذت مخصصة تغيير المنطق؟ إيقاف تشغيله ومعرفة ما إذا كانت المشكلة لا تزال هناك.
هل دخلت Textbox.MinimumSize / MaximumSize؟ إزالة أو تغيير القيمة.

وكما قد يكون مزيجا من هذه الأمور ...

هل المفاجئة النموذج مرة أخرى إلى تخطيط المتوقع عند تغيير حجمه بعد تم تهيئته بغرابة؟ أيضا، هل لديك تحديد الطول أو الممتلكات MinimumHeight / MaximumHeight لمربع النص؟

وإذا كان ذلك ممكنا، وبضع قصاصات من التعليمات البرمجية مصمم قد يكون مفيدا. :)

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

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

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

ومن المرجح جدا بسبب ممتلكات 'AutoScaleMode "التي يجري وضعها في InitializeComponent (). حاول تعيينها إلى 'بلا' ونرى ما اذا كان يصلح له. لقد كان هذه المشكلة بضع مرات حتى الآن.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top