פורסם 2011 בינואר 814 שנים מחבר אם הבנתי אתה מתכוון פשוט ככה:ChooseLine ch; string st1; st1 = ch.choose.Text; MessageBox.Show(st1); זה באמת מביא לי גישה לנתונים שאני צריך אבל יש לי את השגיאה:'Error 1 Use of unassigned local variable 'ch
פורסם 2011 בינואר 814 שנים איפה אתה כותב את הקוד הזה?שים לב שאתה צריך להגדיר את CH פעם אחת, ולבצע ch = new ChooseLine(); פעם אחת בתחילת הריצה, וכל פעם להשתמש ב- ch.choose.Text.מה שאתה עושה עכשיו זה מגדיר את המשתנה כל פעם מחדש, ולא יוצר את האובייקט.
פורסם 2011 בינואר 814 שנים מחבר אני כותב את הקוד הזה בform השני איפה שאני צריך את המידע הזה.והform השני הזה נפתח רק אחרי chooseline אז אם אני עושה שם new הוא לא שומר את הערכים הקודמים הוא כאילו פותח מופע חדש לא משנה אם זה בהתחלה של הform השני או בסוף שלו.בform אחר שנקרא formMenu אני פותח new לchooseLine private void ChooseLineClick(object sender, EventArgs e) { ChooseLine choose_line = new ChooseLine(); choose_line.SetBounds(0, 0, 2000, 2000); choose_line.Show(); }איך אני יכול ליצור הפניה לאובייקט chooseLine בלי ליצור מופע חדש?
פורסם 2011 בינואר 814 שנים נניח שהטפסים נקראים FormA ו-FormB.FormA מכיל את ה-ComboBox ו-FormB הוא זה שמאוכלס בהתאם לערך של ה-ComboBox.FormA צריך להחזיק Member מסוג FormB. כשאתה לוחץ על הכפתור ב-FormA, קרא לפונקציה של FormB (נקרא לה PopulateForm) עם הערך שהמשתמש בחר ב-ComboBox. משהו בסגנון של:mFormB.PopulateForm(myComboBox.SelectedItem);אחרי ש-FormB קיבל את הערכים הנכונים, הצג אותו למשתמש (למשל mFormB.Show או משהו בסגנון).את mFormB אתה מאתחל ב-constructor של FormA. (אפשר גם לחכות עם זה עד הלחיצה הראשונה על הכפתור במקום)
פורסם 2011 בינואר 814 שנים מחבר ניסיתי לעשות את זה,הבעיה היא שכאשר אני פותח new לformB זה עושה את כל הפעולות שיש בתוך formB ואז עוד אין לו את הנתון שהפעולה צריכה כדי לאכלסזה הקוד של הפעולה click של הכפתור בformA: private void CheckChoose(object sender, EventArgs e) { if ((this.choose.Text.Equals(" 1")) || (this.choose.Text.Equals(" 4")) || (this.choose.Text.Equals("88"))) { this.Hide(); Line_1 line1 = new Line_1(); line1.SetBounds(0, 0, 2000, 2000); line1.Show(); } }בשורה: Line_1 line1 = new Line_1();כל הפעולות בformB מתבצעות ואני צריך את הנתון הזה בשביל פעולה שנמצאת בformB
פורסם 2011 בינואר 814 שנים Line_1 זה FormB?אם כן, אז אתה לא צריך ליצור אותו מחדש כל פעם שלוחצים על הכפתור.צור אותו פעם אחת (כחלק מה-Constructor של FormA), ושמור אותו כ-member של FormA.הוסף לו (ל-FormB) פונקציה שמקבלת את הערך מה-ComboBox, וקרא לה אחרי לחיצה על הכפתור.[ private void CheckChoose(object sender, EventArgs e) { if ((this.choose.Text.Equals(" 1")) || (this.choose.Text.Equals(" 4")) || (this.choose.Text.Equals("88"))) { this.Hide(); mLine1.Populate(choose.Text); line1.SetBounds(0, 0, 2000, 2000); line1.Show(); } }
פורסם 2011 בינואר 814 שנים מחבר אוקיי אני חושב שהצלחתי,אני עובד על זה עכשיו,תודה רבה לכולם אם יש לי string מסוים ואני רוצה לפרק אותו למשל: string st2 = "12fd12"; int i = st2[5]; אני לא מבין למה הערך של i יוצא לי 50,איך אני יכול להמיר את זה לטיפוס int שהערך של i יצא לי 2(האיבר במקום ה-5)? ואיו אפשר להשתמש בparse כי זה לא מחרוזת זה רק תו.
פורסם 2011 בינואר 814 שנים הערך ן שלך יוצא 50 מכיוון שזהו הערך של 2 בטבלת האסקי, אם אתה רוצה להוציא מס' מתוך סטרינג אתה יכול לעשות משהו כזהint.TryParse(st[5].ToString(), out result) ; כאשר result זה int
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.