פורסם 2011 באפריל 414 שנים הי,יש לי אפליקצית VB2010 שעובדת מול מסד נתונים של access ומאפשרת למשתמש מסויים להכניס נתונים למסד.בטעינה הראשונית של המסך הראשי של המשתמש הנ"ל נוצרת רשימה דינאמית של linkLabel בטופס, כאשר לכל שורה במסד הנתונים נוצר לינק לטופס אחר שמאפשר לראות את כל הנתונים של אותה שורה במסד. (בטופס הראשי מוצג רק סיכום של המידע).הבעיה היא שכאשר אותו משתמש יוצר (דרך מסך נפרד שנפתח מהמסך הראשי) שורה חדשה במסד הנתונים וחוזר למסך הראשי שלו - הלינק החדש לא מופיע. עשיתי הרבה בדיקות ואני יודע שהלינק עצמו נוצר. אבל הוא לא מופיע על המסך עד שלא סוגרים את הטופס הראשי ופותחים אותו מחדש שזה משהו שאני לא יכול לעשות מסיבות טכניות.ניסיתי כבר מספר פקודות כגון RefreshInvalidateללא הצלחהאשמח לעזרה
פורסם 2011 באפריל 414 שנים השאלה היא מה המנגנון שממלא את הלינקים האלו.זה השאלה היחידה. אם זה בשגרת הLoad, אז תקרא לה פשוט שוב. אבל יותר פשוט לדעת איך מתווספים הלינקים, וכך להוסיף את החדש.בקיצור, את העיקר לא אמרת: איך הלינקים מתווספים.
פורסם 2011 באפריל 514 שנים מחבר אני חושב שאת העיקר דווקא כן אמרתי - הלינקים כן מתווספים, אבל לא מופיעים.
פורסם 2011 באפריל 514 שנים מחבר איך אתה שם אותם על הטופס?לא שזה משנה, אבל הנה השורות שיוצרות את הלינקים If reader.HasRows Then Do While reader.Read() Dim NewLink As LinkLabel = New LinkLabel ' Set the click event handler. AddHandler NewLink.Click, AddressOf openLink ' Place the link on the form. NewLink.Name = CInt(reader.GetInt32(0).ToString) NewLink.Location = New System.Drawing.Point(X, Y) NewLink.AutoSize = True NewLink.TextAlign = ContentAlignment.MiddleLeft NewLink.Text = "Request #" & reader(0).ToString & " Employees Needed: " & reader(1).ToString & " Geographic Area: " & reader(2).ToString Controls.Add(NewLink) Y += 30 LoopEnd Ifנכון לעכשיו מצאתי פיתרון שעובד, לפחות זמנית.במקום להכריח ציור מחדש אני מסתיר את הטופס, יוצר את הלינקים, ומראה בחזרה את הטופס. אין לי מושג כמה טוב זה יעבוד כאשר הDB יתמלא במידע ויקח זמן חפש בו, אבל כרגע זה מה שיש.
פורסם 2011 באפריל 614 שנים ניסית לעשות SuspendLayout(); לFORM שלך לפני ההוספת, ולבצע RESUME אחרי ההוספה?
פורסם 2011 באפריל 614 שנים הקוד שאתה מראה מופעל מתי?בטעינה? באירוע ציור?הקוד שלך גם חלקי, הוא מראה שימוש בDataReader שלא ברור מתי הCommand שלה מוגדר.חוץ מהכל, גם צריך כל פעם לנקות את קונטרולס - Controls.Clear אחרת נוצרים כל פעם הפקדים מחדש - אתה לא רואה כי הם בדיוק אחד על השני.חוץ מזה כדאי להוסיף בלי שום פקודת SQL, ישירות בקוד חדש שיתווסף בהוספת הרשומות, וגם אם כן עושים פקודת SQL לפחות לייעל אותה שלא תביא את כל הרשומות רק את החדשות.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.