PDA

View Full Version : ماندن کنترل ها بر روی فرم بعد از بستن فرم



saeed_vb.net
سه شنبه 06 اسفند 1392, 00:15 صبح
با سلام خدمت دوستان
من میخوام در زمان اجرا وقتی یک کنترل مثل دکمه رو ایجاد کنم و بعد از اولین اجرای اون وقتی که ایجاد شد دیگه برای همیشه روی فرم بمونه و بعد از بسته شدن فرم هم از بین نره
ممنون میشم اگه کمک کنید

Alirezanet
سه شنبه 06 اسفند 1392, 01:09 صبح
شما باید بعد از زمانی که کنترل ایجاد شد خصوصیات و مختصات کنترل رو در دیتابیس یا یک فایل ذخیره کنید و زمان بارگذاری مجدد فرمتون اطلاعات داخل اون فایل و یا دیتابیس رو بخونید و اگر قبلا کنترلی ایجاد شده بود مجددا به فرمتون اضافه کنید.

موفق باشید

saeed_vb.net
سه شنبه 06 اسفند 1392, 12:48 عصر
باز هم ممنونم از جوابتون
ممکنه یک مثال بزنید
یا یک کد بفرستید
ممنون

Alirezanet
سه شنبه 06 اسفند 1392, 15:02 عصر
باز هم ممنونم از جوابتون
ممکنه یک مثال بزنید
یا یک کد بفرستید
ممنون
سلام
یک نمونه براتون آماده کردم. توی این مثال من از فایل xml استفاده کردم برای تگهداری اطلاعات Button ها روی فرم ...
البته نمونه رو براتون نوشتم ولی متاسفانه فکر میکنم امکان ضمیمه سایت برنامه نویس مشکلی داره و نتونستم آپلود کنم.
یک فرم ساده ایجاد کنید ... یک Button و یک flowLayoutPanel بهش اضافه کنید و کدهای زیر رو به فرم اضافه کنید ... برای تست.



Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim btn As New Button
btn.Name = "MyBTN " & FlowLayoutPanel1.Controls.Count
btn.Text = "MyBTN " & FlowLayoutPanel1.Controls.Count
FlowLayoutPanel1.Controls.Add(btn)
End Sub

Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
Dim XButtons As New XElement("Buttons")
For Each b As Button In FlowLayoutPanel1.Controls
Dim xbtn As New XElement("Button")
xbtn.Add(New XElement("Name", b.Name))
xbtn.Add(New XElement("Text", b.Text))
XButtons.Add(xbtn)
Next
If XButtons.Elements.Count > 0 Then
Dim xDoc As New XDocument
xDoc.Add(XButtons)
xDoc.Save("BTNS")
End If
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
If IO.File.Exists("BTNS") Then
Dim xDoc = XDocument.Load("BTNS")
For Each b In xDoc.Root.Elements
Dim btn As New Button
btn.Name = b.<Name>.Value
btn.Text = b.<Text>.Value
FlowLayoutPanel1.Controls.Add(btn)
Next
End If
End Sub
End Class


موفق باشید

saeed_vb.net
سه شنبه 06 اسفند 1392, 20:25 عصر
آقا ممنونم واقعا واقعا لطف کردین