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

لمعرفة إسم النافذة النشطة

مغلق
بدأه POWER _GIRL في 12 يونيو 2005 · 19 رد · 1,213 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

هذا الكود يعطيني إسم النافذة الحاوية Form_mdi :blink:

وأنا أريد إسم النافذة المضمنة النشطة (المفتوحة) :blink: ماهوا التعديل اللازم على الكود?

Form_mdi.ActiveForm.Name

------------------------------------,

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 12 يونيو 2005 في 01:07

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#2

السلام عليكم

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

      Public Sub ActiveForms(ByVal mFrm As Form1)
        Dim frm As Form
        For Each frm In mFrm.MdiChildren
            If frm Is mFrm.ActiveMdiChild Then
                MessageBox.Show(frm.Text)
            End If
        Next
    End Sub

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#3

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

Form1.MdiChildren

لم يتعرف على الخاصيه :(

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#4

لإسم الفورم الأساسي

إذا كان فورم عادي

TextBox1.Text = Form.ActiveForm.Name

أما إذا كان MDIChild form

TextBox1.Text = Form.ActiveForm.ActiveMdiChild.Name

أما لإسم الفورم "Text" اللي يظهر في أعلى الفورم ما كان يسمى في الفيجوال بيسك6 بـ "Caption"

إذا كان فورم عادي

TextBox1.Text = Form.ActiveForm.Text

أما إذا كان MDIChild form

TextBox1.Text = Form.ActiveForm.ActiveMdiChild.Text

تم تعديل هذه المشاركة بواسطة بن ملعاط في 12 يونيو 2005 في 06:53

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#5

بن ملعاط :lol: تحية لك أستاذي

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

أتوماتيك بتفحص حالة النافذة

me=mdi

    Sub MDI(ByVal mForm2 As System.Windows.Forms.Form) 
'إجراء فتح النوافذ المضمنة

        With mForm2
            .MdiParent = Me 'تضمين الفورم

            If .Name = me.ActiveForm.ActiveMdiChild.Name Then  
 'اسم النافذه النشطه
                me.ActiveForm.Close() 'جعل الزر أكثر مرونة يغلق/ويفتح
                MsgBox("close")

            Else
             .Show()
           

        End If
        End With
    End Sub

فالإنتظار :unsure:

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 14 يونيو 2005 في 17:59

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#6
up <_<

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#7

السلام عليكم

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

     Public Shared Sub CloseForms(ByVal mFrm As Fmain)
        Dim frm As Form
        For Each frm In mFrm.MdiChildren
            If frm Is mFrm.ActiveMdiChild Then
                frm.Dispose()
            End If
        Next
    End Sub

{وَاتَّقُواْ يَوْمًا تُرْجَعُونَ فِيهِ إِلَى اللّهِ ثُمَّ تُوَفَّى كُلُّ نَفْسٍ مَّا كَسَبَتْ وَهُمْ لاَ يُظْلَمُونَ} (281) سورة البقرة

br17.gif

برنامج الإتصلات الإدارية والارشيف الالكتروني

برنامج الخبير لنقاط البيع المباشرة

#8
اقتباس
الهدف من هذا الكود أن أجعل الزر يغلق ويفتح النافذة

أتوماتيك بتفحص حالة النافذة

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#9
اقتباس
الهدف من هذا الكود أن أجعل الزر يغلق ويفتح النافذة

أتوماتيك بتفحص حالة النافذة

تفض المثال..

pg.net.rar

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#10

أين المشكلة برأيكم؟!! :blink: :blink: :blink: :blink: :blink: :blink:

If Me.ActiveForm.ActiveMdiChild.Visible = True Then
            MsgBox("is open")
        End If

الكود يعمل بشكل جيد لو كانت هناك نافذة مضمنه مفتوحة ولكن إن لم تكن هناك نافذة مضمنة مفتوحه يحدث الخطأ

مع أن الكود يختبر وجود نافذة مفتوحة أم لا؟! :blink:

ساعدوني أثابكم الله

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 16 يونيو 2005 في 13:07

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#11
Dim CHForm As New Form3
        CHForm.MdiParent = Me 
   CHForm.Show() 


                If Me.ActiveForm.IsMdiChild = True Then 
                    MsgBox("is pleas" )

غيرت الكود لهذا ولم يظهر أخطاء ولكن لم ينفذ الشرط!!؟؟ :blink:

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#12

عفوا أختي الكريمة ما هو طلبك بالضبط

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#13

أخي الفاضل

اريد كود يعمل على..

تفحص إذا ماكان هناك نافذة مضمنة مفتوحة أم لا.........

الهدف حتى لا أسمح بفتح أكثر من نافذة مضمنة

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

تفحص إذا ماكان هناك نافذة مضمنة مفتوحة أم لا.........

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#14

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

طريقة جربتها لفتح الفورم مرة واحدة

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#15

لا لا الموضوع ان هذا الكود يعمل بالمطلوب :(

لو ان هناك نافذه ضمينة مفتوحة

ولكن ان لم تكن هناك نافذة ضمنية مفتوحة يظهر رسالة خطأ

 If Me.ActiveMdiChild.IsMdiChild = True Then

أريد تجنب ظهرو هذه الرسالة..ما التصحيح لهذا السطر

أرجوا ان اكون قد وضحت طلبي ولك شكري أستاذي بن ملعاط

تم تعديل هذه المشاركة بواسطة POWER _GIRL في 16 يونيو 2005 في 17:59

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#16
يارب

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#17

الحمد لله تم حل المشكلة

ولكن الكود مشي بطريقة عكسية

من وجهت نظري انو المفروض لو كانت القيمة ترو ( مع جود نافذة مضمنة مفتوحة)

ينفذ الشرط ..............

لكن العكس هوا الظاهر فهوا يعمل بالعكس بمعنى

لما القيمة تكون فولس( مع جود نافذة مضمنة مفتوحة)

ينفذ الشرط ..............

ارجوا التوضيح , :lol:

 Dim frm As Form
If frm Is Me.ActiveMdiChild = False Then

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#18

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

يعني إذا أردت وضع True بدل من False

لا بد من تعيين فورم أم للفورم frm

Dim frm as New Form2
With frm
    .MDIParent = Me
End With

الأن الشرط True يتحقق لأن frm أصبحت نافذة مضمنة

اللهم اغفر لي و لوالدي و للمؤمنين يوم يقوم الحساب

لا إله إلا الله عدد ما كان و عدد ما يكون و عدد الحركات و السكون

#19

تم إستيعاب السبب أشكرك أستاذي القدير بن ملعاط

أثابك الله وفرج كربك دنيا وأخره :lol:

Dim CHForm As New Form2 
' (نحدد الفورمة على كل زر( وهي الفورمة المطلوب فتحها   

Dim frm As New Form
  'بشكل عام لأني أقصد أي فورم مضمن مفتوح

   With CHForm
            .MdiParent = Me
            If frm Is Me.ActiveMdiChild = False Then 

                msg =MsgBox("يجب غلق النافذة الحالية للإنتقال للنافذة الأخرى", MsgBoxStyle.OKCancel, "تنبيه")
                    If msg = vbOk Then
                        Me.ActiveMdiChild.Close()
             .Show()
 End If
 End If
End With

وبعد إضافة هذا السطر frm.MdiParent = Me

:unsure: ظهرت رسالة خطأ !!!!!!!!!!

<< CLICK TO START>>

post-41869-046528000%201305052277.jpg

ليس أن تجد حلا بل أن تجد الافضل

أن تصـــنع الخـيال هذا هوا الأفضل</span>

#20

الكود التالي يعيد اسم النافذة النشطة مهما كانت :

Public Declare Function GetWindowText Lib "user32" _
            Alias "GetWindowTextA" (ByVal Hwnd As Integer, _
            ByVal lpString As String, ByVal cch As Integer) As Integer
Public Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Integer) As Integer
    Public Declare Function GetForegroundWindow Lib "user32" () As Integer
Dim longs, handle As Integer
    Dim last, title As String

Function caption() As String
        handle = GetForegroundWindow
        longs = GetWindowTextLength(handle)
        title = New String(CChar(""), longs)
        GetWindowText(handle, title, title.Length)
        If title <> last Then
            last = title
            caption = last
        End If
    End Function

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

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