עבור לתוכן

התייחסות לטפסים בעזרת משתנים- VB.NET .

Featured Replies

פורסם

שלום לכולם, אני מנסה להתייחס לטפסים שהמשתמש יצר לבד במשך שהתוכנה פעלה,

המשתנים שלי הם על שמות מספרים כמו 1 , 2 , 3 וכו....

יש לי משתנה בשם i , אני מנסה נגיד לגרום לטופס שקוראים לו נגיד 2

לשנות את השם שלו ל-1 הבעיה היא כזאת,

שאני רושם

i+1.name=i או (i+1).name=i

הוא לא נותן לי הוא רושם לי Syntax error נכון לגבי עכשיו שהתוכנה לא רצה זה נכון,

אבל שהתוכנה רצה והטפסים האלה אכן קיימים, אני רוצה שהם ישתנו,

אין איזה אפשרות לגרום לכך שה-VB .NET יתייחס אל הטפסים האלה מבלי לתת שגיאה?

או לפחות שיטה אחרת להיתייחס לטפסים בעזרת משתנה מסוג זה?

תודה!

פורסם

huh? לא ממש הבנתי מה אתה רוצה לעשות.

אם אתה רוצה לבנות תכנית שתתייחס לשמות המשתנים (נניח יש לך משתנים בשם a1,a2,a3 ואז להתייחס למשתנה שהשם שלו הוא 'a'+מספר), אז אתה לא יכול בלי מנגנוני reflection מגעילים. זה גם דבר מכוער לעשות.

הדרך לעשות משהו כזה היא להגדיר מילון (Dictionary) מ-string לטיפוס של המשתנה שלך, ואז להתייחס לפי המפתחות שבמילון.

פורסם
  • מחבר

אוקיי אני אנסה להסביר את זה בדרך יותר מובנת,

למשתמש יש אפשרות ליצור טפסים משלו (Form),

עכשיו , כול טופס שהמשתמש יוצר מקבל משתנה +1,

לדוגמא, המשתמש לחץ על הכפתור אז הוא יצר טופס

בשם (Name), 1, אחרי זה הוא לחץ עוד פעם על הכפתור אז

הוא יצר עוד טופס הפעם השם של הטופס החדש הוא:

2, וככה לגבי הטופס הבא (ששמו יהיה 3) וכו,

עכשיו, אני רוצה להתייחס נגיד לטופס 3,

אני רוצה להפוך את השם שלו ל-2, אז מה שעשיתי זה משתנה בשם- i :

i+1.name=i

או במילים אחרות:

נגיד ו-i שווה 2 אז :

2+1.name=2

זאת אומרת תשנה את השם של טופס מספר 3, לשם טופס מספר 2...

עכשיו שאני מנסה לעשות את זה, זה לא נותן לי פשוט רשום Syntax Error , כניראה אי אפשר להיתייחס

לטפסים האלה לפי משתנה, הבעיה היא שגם הטפסים הללו בכלל לא קיימים , אלא המשתמש יוצר אותם,

ככה שאני בכלל לא יודע איך להיתייחס אליהם.

אם אני עדיין לא מובן, נגיד יש לנו טופס בשם Form1

אז בכללי

Form1.name=Form1 זה כמובן השם שלו.

אני רוצה לשנות עכשיו את השם מ-

Form1.name=Form0

עכשיו Form1 יהפוך להיות בשם Form0 מצטער אם אני לא מובן, אני מנסה ...

ואם הבנת, איך אני עושה את זה? תיקח בחשבון שהמשתמש יוצר את הטפסים והם לא קיימים עד שהוא יוצר אותם.

פורסם

אין כזה דבר. אתה לא יכול להגדיר שמות למשתנים (טופס הוא גם משתנה, כן?) תוך כדי ריצת התכנית.

מה שאתה צריך לעשות הוא אחד משני דברים:

להגדיר מערך של טפסים, ואז ה"שם" של הטופס פשוט יהיה האינדקס במערך (אז אתה מוגבל למספרים, כמובן),

או להגדיר <Dictionary<string,form שבעצם ימפה שמות של טפסים לטפסים עצמם. השמות האלה יהיו פשוט מחרוזות שתוכל לעשות איתן מה שאתה רוצה.

אם זה עדיין לא ברור, יכול להיות שלא הבנתי בדיוק את השאלה שלך, ואשמח אם תעלה דוגמת קוד יותר גדולה.

פורסם
  • מחבר

אני חושב שהבנת אותי (-: , אם ככה,

איך אני עושה מערך של טפסים? אני יודע לעשות מערך רגיל, לא מערך של טפסים...

אפשר דוגמא?

ואיך אני משתמש ב"מילון" ?

תודה!

פורסם
  • מחבר

תודה רבה על התגובות המהירות! ,

אבל משום מה עדיין לא הבנתי...

אם אני מכריז על מערך, הוא תקף רק לטופס הנוכחי

ואני לא יוכל להיתייחס בעזרת המערך בטפסים אחרים,

יש דבר כזה להכריז על מערך שיהיה תקף לכול הטפסים?

ואני מכריז על מערך ככה:

dim x(100) as integer

לדוגמא, זה מערך של 100 תאים...

איך אני עושה משהו דומה לזה של טפסים?

ואיך זה יהיה תקף בכול הטפסים ולא רק לאחד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים