نوشته شده توسط
lovecity7
با سلام
می خواستم در زمان اجرا به عنوان مثال یک Textbox به پروژه اضافه شده را ذخیره کنم نحوه اضافه شدنش رو می دونم ولی چطوری ذخیره میشه که بعد از بستن و باز شدن پروژه حذف نشه.دیتابیس اکسس هم داره.
ممنون
سلام
من یک نمونه کد با استفاده از فایل xml براتون میزارم. فقط شما کاری که من تو فایل xml کردم رو باید رو دیتا بیس اکسس خودتون ایجاد کنید و کدهای insert و update فایل xml رو با کدهای insert و update اکسس جابه جا کنید.
1- تعریف dataset و ایجاد ستون ها برای ذخیره داده های مورد نیاز کنترلها
کد :
Dim ds As New DataSet
ds.Tables.Add("Objects")
With ds.Tables("Objects")
.Columns.Add("ObjectType")
.Columns.Add("ObjectName")
.Columns.Add("Position")
.Columns.Add("Text")
End With
2- کد ذخیره کردن dataset در فایل :
ds.Tables("Objects").Clear()
For Each control As Control In Panel1.Controls
If control.Tag = "TextBox" Then
With control
ds.Tables("Objects").Rows.Add(New Object() { .Tag, .Name, .Location, .Text})
End With
End If
Next
ds.WriteXml(Application.StartupPath & "\Objects.xml")
3- کد فراخوانی Objects از فایل :
ds.Clear()
Panel1.Controls.Clear()
ds.ReadXml(Application.StartupPath & "\Objects.xml")
For Each row As DataRow In ds.Tables("Objects").Rows
If row.Item("ObjectType") = "TextBox" Then
Dim myStringWhichCantBeChanged = row.Item("Position").ToString
Dim g = System.Text.RegularExpressions.Regex.Replace(myStr ingWhichCantBeChanged, "[\{\}a-zA-Z=]", "").Split(",")
Dim pointResult As Point = New Point(Int(g(0)), Int(g(1)))
Dim txt As New TextBox
With txt
.Location = pointResult
.Name = row.Item("ObjectName").ToString
.Tag = row.Item("ObjectType").ToString
AddHandler .MouseDown, AddressOf Control_MouseDown
AddHandler .MouseMove, AddressOf Control_MouseMove
AddHandler .MouseUp, AddressOf Control_MouseUp
End With
Panel1.Controls.Add(txt)
End If
Next
4- کد ایجاد Object به صورت داینامیک در فرم (برای مثال یک textbox) :
Dim txt As New TextBox
With txt
.Location = New Point(100, 100)
.Name = Guid.NewGuid().ToString().Replace("-", "")
.Tag = "TextBox"
AddHandler .MouseDown, AddressOf Control_MouseDown
AddHandler .MouseMove, AddressOf Control_MouseMove
AddHandler .MouseUp, AddressOf Control_MouseUp
End With
Panel1.Controls.Add(txt)
5- کد تغییر مکان Objectها :
'Move Objects
Private _isMoved As Boolean
Private _x As Integer
Private _y As Integer
Private Sub Control_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs)
_isMoved = True
_x = e.Location.X
_y = e.Location.Y
End Sub
Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs)
If _isMoved Then
sender.Location = New Point(sender.Location.X + (e.Location.X - _x), sender.Location.Y + (e.Location.Y - _y))
End If
End Sub
Private Sub Control_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs)
_isMoved = False
End Sub