الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة في مناداة form للآخر و بعض الكونترولز

مغلق
بدأه الحاسوبي في 8 ديسمبر 2005 · 8 رد · 689 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم و رحمة الله وبعد

واجهتني مشكلة حيث أنني عندما أنادي Form من Form لا ينفذ الأوامر الموجودة فيه فما هو السبب ؟؟

و كذلك كيف يمكن استخدام

Help provider ,PrintDialog ,PreViewPrintDialog

عموماً أنا أرفقت الملف واضعاً فيه جزء المشكلة الذي واجهني

فهل من مساعد!!!!!!!!!!

myQ.zip

#2

بسم الله الرحمن الرحيم

    Dim d As New Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Me.rtbUpper.Checked = True Then
            d.RichTextBox1.Text = d.RichTextBox1.Text.ToUpper
        Else
            d.RichTextBox1.Text = d.RichTextBox1.Text.ToLower
        End If

        Me.Close()
    End Sub

أخي الكريم في الكود المكتوب مسبقاً أن تقوم بإنشاء فورم جديد ولكن لا تقوم بإظهاره فكيف سوف ترى التغير الذي قمت به

لحل المشكلة

    Dim d As New Form1
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

       d.Show() ' هنا نفوم بإظهار الفورم أولاً ثم بعد ذلك نقيم عليها التغير ليراه المستخدم

        If Me.rtbUpper.Checked = True Then
            d.RichTextBox1.Text = d.RichTextBox1.Text.ToUpper
        Else
            d.RichTextBox1.Text = d.RichTextBox1.Text.ToLower
        End If

        Me.Close()
    End Sub

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#3

مرفق مثال للسؤال الأول ، قد لا تكون هذه هي الطريقة الأمثل ولكنها شغالة

NewmyQ.rar

#4

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

    
Public Module PublicVariable
  Public MyForm As Form1 = New Form1
End Module 

Public Class Form2
    Inherits Form

    Public isUpper As Boolean
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       
         if Not MyForm.Visible Then MyForm.Show()

        If Me.rtbUpper.Checked = True Then
            MyForm.RichTextBox1.Text = MyForm.RichTextBox1.Text.ToUpper
            isUpper = True
        Else
            MyForm.RichTextBox1.Text = MyForm.RichTextBox1.Text.ToLower
            isUpper = False
        End If
    End Sub
End Class

وعلى جميع الأحوال ليس هو هذا الحل الأمثل أيضاً يجب علينا أن نخفف في برامجنا عملية الإرتباط أي يجب على أي كائن أن لا يعرف إلا القليل عن الكائن الأخر فإذا أتبعنا هذا الإسلوب سوف تكون برامجنا قابلة لنقل والتوسع والتغير متى شئنا

أرجو قراءة كتب تتحدث عن الـ Design Patterns وقرائة الفصل الذي يتحدث عن Behavioral Patterns التصميم الذي يدعى Mediator Pattern

أو قرائة الكتاب بالكامل

تم تعديل هذه المشاركة بواسطة TarekNajem04 في 8 ديسمبر 2005 في 16:00

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#5
اقتباس
وعلى جميع الأحوال ليس هو هذا الحل الأمثل أيضاً يجب علينا أن نخفف في برامجنا عملية الإرتباط أي يجب على أي كائن أن لا يعرف إلا القليل عن الكائن الأخر فإذا أتبعنا هذا الإسلوب سوف تكون برامجنا قابلة لنقل والتوسع والتغير متى شئنا

أخي العزيز هذا هو قصدي من كون الحل ليس الأمثل ...

بارك الله فيك ومشكور على الاهتمام

#6

بسم الله الرحمن الرحيم

من منطلق ما قال سيدنا عمر رحم الله مرء أهدى إلي عيوبي

أخي الكريم الكود الذي قمت بإرفاقة ليس قريب للحل لماذا؟

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

أرجو أن تعذرني لست ملحاً ولكني أبتغي في مشاركاتي أن أتعلم وأعلم إن كنت أستطيع

تم تعديل هذه المشاركة بواسطة TarekNajem04 في 8 ديسمبر 2005 في 20:43

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#7

أخي الكريم

جزاك الله خيراً

ولكن لاحظ أني أثرت الطريقة Activate للفورم الأول قبل الإغلاق

Form1.ActiveForm.Activate()

والكود شغال حتى لو ضغطت نافذة أخرى غير النافذة الأولى

على كل حال الكود مجرد فكرة للحل ويوجد أفكار أخرى يمكن تطبيقها

ولكن الكود شغال ومجرب كما ذكرت

إذا كان هناك استثناءات لذلك فيرجى التوضيح أكثر

وكما ذكرت في البداية أنا نفسي أحس أن هذه الطريقة ليست المثلى (لكنها شغالة :D )

وجزاك الله خيراً أخي الكريم و ولا يهمك من مسألة الإلحاح

#8

بسم الله الرحمن الرحيم

أخي الكريم كما ذكرت لك مسبقاً لا أكتب إلا للفائدة

نستطيع تلخيص برنامج بما يلي:

	Dim f As New Form2 =  New Form2

	if f.ShowDialog(Me) = DialogResult.Ok Then
  If f.isUpperThen
 	 Me.RichTextBox1.Text = Me.RichTextBox1.Text.ToUpper
  Else
 	 Me.RichTextBox1.Text = Me.RichTextBox1.Text.ToLower
  End If
	End If

على أن نكون قد ضبطنا خصائص الأزرار في الفورم الثاني على النحو التالي:

	butOK.DialogResult = DialogResult.Ok
	butCancel.DialogResult = DialogResult.Cancel

أتمنى لكم التوفيق فأتمنى أن يكون هذا الحل الأمثل لمثالك

لا تفعل إلا ما تستطيع أن تقوله ولا تقول إلا ما تسطيع أن تفعله

اللهم علمنا ما ينفعنا ونفعنا بما علمتنا وهب لنا من لدنك ولياً مرشدا

كلما أدبني الدهر أراني نقص عقلي ... وإذا ما زدت علماً زادني علماً بجهلي

أخوكم في الله أبو المجد

هيا نتعلم بعض المبادء لنطرق باب الإحتراف ************** جديد الدروس ( Application Domains and Assemblies)

التوقيت في دمشق:

<embed src="http://www.clocklink.com/clocks/0006-Gray.swf?TimeZone=R1T" width="200" height="240" wmode="transparent" type="application/x-shockwave-flash">

#9

مشكورين يا أخوان و الله استفدت من أفكاركم طيب كيف يمكن استخدام

Help provider ,PrintDialog ,PreViewPrintDialog

هذا الموضوع مغلق.

مواضيع مشابهة