سؤال

تبحث عن حل التدقيق الإملائي المجاني، اعتقدت أنني كنت ذكيا جدا في القيام بذلك ولكن لا أعتقد ذلك.

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

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

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

عند فتح النافذة ويتم تحديد عدد عناصر التحكم، فهذا هو إلى حد كبير كيفية إضافة عناصر التحكم:

Dim xOffset As Integer = 0
For i As Integer = 0 To theNumber
    Dim myUserControl As New SpecialUserControl()
    myPanel.Controls.Add(myUserControl)
    myUserControl.Location = New Point(7, 7)
    myUserControl.Location = New Point(xOffset, 7)
    xOffset = xOffset + 207
Next

لاحظ أن:

  • MyPanel هي لوحة في شكل
  • SpecialuserControl هو عنصر تحكم المستخدم مع Textbox WPF (ضمن كائن Elementhost)

عندما ضغط المستخدم على زر، يتم مسح اللوحة:

myUserControl.Controls.Clear()

يمكن للمستخدم ثم كرر العملية.

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

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

المحلول

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

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