נושא: עיצוב ושמירת טופס ע"י המשתמש בזמן ריצה
|
|
כותב |
|
yuee משתמש פעיל
הצטרף / הצטרפה: 27 December 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 65
|
נשלח בתאריך: 18 March 2012 בשעה 10:03 | | IP רשוּם
|
|
|
|
שלום רב, הפיתוח הוא בסביבת vb.NET 2010 winform App. אני מעצב טופס בזמן ריצה, מוסיף קונטרולים ומשתמש בפקד propertyGrid לצורך קביעת מאייפני הקונטרול. כיצד ואיך נכון לשמור את מאפייני הטופס והפקדים שנוספו אליו בזמן ריצה ולטעון אותם עתידית? אשמח לכיוונים ורעיונות.
__________________ כשאלברט איינשטיין נשאל, מה אתה חושב על העתיד? הוא ענה: "אני לא מספיק לחשוב עליו, כי הוא מגיע בקצב מהיר מדי"
פורום מצלמות אבטחה
|
חזרה לתחילת העמוד |
|
|
shoshan מנהל האתר
הצטרף / הצטרפה: 16 July 2005 מדינה: Israel
משתמש: מנותק/ת הודעות: 4637
|
נשלח בתאריך: 19 March 2012 בשעה 19:22 | | IP רשוּם
|
|
|
|
serialization
__________________ עד מתי רשעים יעלוזו?
עַל כֵּן אֶמְאַס וְנִחַמְתִּי עַל עָפָר וָאֵפֶר.
|
חזרה לתחילת העמוד |
|
|
yuee משתמש פעיל
הצטרף / הצטרפה: 27 December 2007 מדינה: Israel
משתמש: מנותק/ת הודעות: 65
|
נשלח בתאריך: 25 March 2012 בשעה 09:50 | | IP רשוּם
|
|
|
|
תודה, השתמשתי בזה, וזה דיי פשוט. יש לי שאלה, האם ניתן ליצור בקובץ XML יותר מאובייקט אחד ואחר-כך לקרוא אותו אולי ע"י לופ באמצעות Deserialize. או שיש צורך עבור כל אובייקט בעצם ליצור קובץ יחודי. כרגע זה עובד כך:
קוד:
Dim Frmset As FormSettings = New FormSettings() Dim serializer As New XmlSerializer(GetType(FormSettings)) Using writer As New StreamWriter(Application.StartupPath & "\form-1.xml") serializer.Serialize(writer, Frmset) writer.Close() writer.Dispose() End Using
|
|
|
כך אני שומר את הנתונים החיוניים של הטופס. FormSettings מייצג את המאפיינים שהגדרתי עבור הטופס. התוצאה:
קוד:
<?xml version="1.0" encoding="utf-8"?> <FormSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Name>form-1</Name> <Text>Test</Text> <Size> <Width>1129</Width> <Height>657</Height> </Size> <Location> <X>0</X> <Y>0</Y> </Location> <WindowState>Normal</WindowState> </FormSettings> |
|
|
עכשיו בכדי לקרוא את הנתונים אני משתמש בזה:
קוד:
Dim ser As XmlSerializer ser = New XmlSerializer(GetType(FormSettings)) Dim stringReader As StreamReader stringReader = New StreamReader(Application.StartupPath & "\form-1.xml") Dim xmlReader As XmlTextReader xmlReader = New XmlTextReader(stringReader) 'stringreader is {System.IO.StringReader} xmlReader.Read() Dim obj As FormSettings = New FormSettings() obj = ser.Deserialize(xmlReader) 'xmlReader is {System.Xml.XmlTextReader} newFrm.Size = obj.Size newFrm.Text = obj.Text xmlReader.Close() |
|
|
וזה עובד מצויין. מאחר ואני מנסה שכל האובייקטים שנוספו לטופס בזמן ריצה גם יהיו בקובץ אני משתמש בלולאה שרצה על הטופס ומייצרת בתוך הקובץ XML את שאר האובייקטים. והשאלה כיצד ניתן לקרוא את כולם?
__________________ כשאלברט איינשטיין נשאל, מה אתה חושב על העתיד? הוא ענה: "אני לא מספיק לחשוב עליו, כי הוא מגיע בקצב מהיר מדי"
פורום מצלמות אבטחה
|
חזרה לתחילת העמוד |
|
|
NewMan משתמש מתחיל
הצטרף / הצטרפה: 06 May 2011 מדינה: Israel
משתמש: מנותק/ת הודעות: 29
|
נשלח בתאריך: 04 June 2012 בשעה 06:44 | | IP רשוּם
|
|
|
|
התשובה הקצרה היא "כן". אתה קורא לפונקציה Deserialize מס'
פעמים והיא כבר מקדמת את מצביע הקובץ למקום שאחרי האובייקט
שעבר דסריאליזציה.
דסריאליזציה של מספר אובייקטים חייב להתאים לסדר בו הם
"סורלצו", מבחינת סוג האובייקטים.
|
חזרה לתחילת העמוד |
|
|
|
|
אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם
|
אינך יכול/ה לשלוח נושאים חדשים בפורום זה אינך יכול/ה להגיב לנושאים בפורום זה אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה אינך יכול/ה לצור סקרים בפורום זה אינך יכול/ה להצביע בסקרים בפורום זה
|