28-02-20, 07:57 PM
(آخر تعديل لهذه المشاركة : 28-02-20, 08:09 PM {2} بواسطة alsalamoni.)
(25-02-20, 07:50 AM)alshandodi كتب : اسعد الله صباحك
أخي عبدالعزيز نجح الكود ولكن هناك مشكله
عندما اعمل SendToBack يفتح كل الملفات ويعود دائما في الخلف
ساقوم بعمل مثال..
- اريد لا يكون شي امامه سوى البرنامج الذي اقوم بفتحه
- وعندما اقوم بغلق البرنامج يغلق كل شي فتحته
ولك جزيل الشكر والتقدير وكل اعضاء المنتدى الرائع
يجب ان تحتفظ بال id الخاص بالحاسبة ليتم اغلاقها عند اغلاق البرنامج
هذا تعديل لعله يفيدك
كود :
Public Class Form1
Private Sub فاتورةجديدهToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles فاتورةجديدهToolStripMenuItem.Click
If Application.OpenForms.Cast(Of Form).OfType(Of Form2)().Count = 0 Then
Dim frm As New Form2
frm.MdiParent = Me
frm.Show()
Else
Application.OpenForms.Cast(Of Form).OfType(Of Form2)()(0).WindowState = FormWindowState.Normal
Application.OpenForms.Cast(Of Form).OfType(Of Form2)()(0).Activate()
End If
End Sub
Private Sub بالجانبToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles بالجانبToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileVertical)
End Sub
Private Sub بالتقسيمToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles بالتقسيمToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.TileHorizontal)
End Sub
Private Sub تتاليToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles تتاليToolStripMenuItem.Click
Me.LayoutMdi(MdiLayout.Cascade)
End Sub
Private Sub إغلاقالكلToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles إغلاقالكلToolStripMenuItem.Click
For Each ChildForm As Form In Me.MdiChildren
ChildForm.Close()
Next
End Sub
'---------------------------------
Dim prs As New List(Of Integer)
Private Sub الحاسبةToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles الحاسبةToolStripMenuItem.Click
SendToBack()
Dim id As Integer = Process.Start("calc").Id
prs.Add(id)
End Sub
Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
For Each id As Integer In prs
Dim processes = Process.GetProcesses
For Each p As Process In processes
If p.Id = id Then p.Kill()
Next
Next
End Sub
'---------------------------------
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SetWindowPos(Handle, HWND_TOPMOST, Left / 15, Top / 15, Width / 15, Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE)
End Sub
End Class
الافضل ان تعمل فورم عبارة عن الة حاسبة خاص بك بشكل يخدم العمل على البرنامج
الة حاسبة بسيطة سورس كود مع الشرح بالفيديو للكود