עבור לתוכן

שאלה ב c# העברת מידע בין forms

Featured Replies

פורסם

איך אני יכול להעביר מידע בין שתי FORM?

ניסיתי לקרוא לפעולה ממשתי הפורמים בשם משותף static,אבל אז אני לא יכול לגשת לתכונות של הform,יש לי הודעת שגיאה:

"keword 'this' is not valid in a static property static method or static feild initializer"

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

this.button.Text

מform מסוים לform אחר?

תודה מראש לכל העוזרים!

פורסם

ערוך בבקשה את הכותרת כך שתכיל את תמצית השאלה.

לשאלתך: כמו שאתה מעביר מידע מכל אובייקט לכל אובייקט אחר. אם לא היה מדובר ב-Form, היית יודע איך לעשות את זה?

פורסם
  • מחבר

כן,הייתי עושה את זה דרך הקונסטרקטור.

אבל פה זה לא אפשרי..

אין דרך להעביר בין שתי form מידע?

פורסם

למה פה זה "לא אפשרי"?

צריך לזכור ש-Form זה לא משהו מיוחד. זו מחלקה בדיוק כמו כל מחלקה אחרת. יש לה בנאי, אפשר להוסיף לה מתודות ואיברים.

פורסם
  • מחבר

הבעיה היחידה היא שאני משתמש בקונסטרקטור בform השני אני מקבל שגיאה:

Error 1 'Bus.ChooseLine' is a 'type' but is used like a 'variable'

איך אני פותר את הבעיה הזאת?

פורסם
  • מחבר

זה הקונסטרקטור:

 public ChooseLine(string st)
{
InitializeComponent();
button1.Enabled = false;
st = button1.Text;
}

וזו הפעולה בform השני שמשתמשת בו:

private void ShowName()
{
string st = "";
ChooseLine(st);
MessageBox.Show(st);
}

השגיאה שאני מקבל בקומפילציה:

Error 1 'Bus.ChooseLine' is a 'type' but is used like a 'variable'

פורסם

ChooseLine זו מחלקה?

מה אמורה לומר השורה הזו:

ChooseLine(st);

?

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

פורסם
  • מחבר

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

פורסם
  • מחבר

הבעיה שכשאני פותח את המחלקה הזאת עם הnew הנתונים הקודמים נמחקים וכל המשתנים של המחלקת עם ערך null

אז בעצם לא עשיתי בזה כלום,הנתונים שרציתי בשביל הform השני לא נשמרים.

פורסם

כשאתה עושה new שום דבר לא נמחק. נוצר אובייקט חדש לחלוטין.

כשאתה מבצע השמה לתוך משתנה, אז המשתנה "שוכח" מה היה בו קודם. אם הוא הצביע לאובייקט קיים, האובייקט לא בהכרח ימחק - הוא ימחק רק אם לא ישארו שום מצביעים אחרים אליו.

שוב, יעזור את תביא את הקוד המלא.

פורסם
  • מחבר

יש לי בform מסוים(chooseLine)

combobox בתוכו יש רשימה של קווים לבחירה,אני בוחר קו מסוים לוחץ על כפתור שבודק את הערך של הcombobox (בודק איזה קו בחרתי) ומעביר אותי לform לפי מה שבחרתי.המטרה שלי היא שכל קו שאני אבחר יוביל אותי לאותו form ואני ידע איך לאכלס את הform הזה(מתוך המסד) באמצעות הערך שבחרתי בcombobox.

ככה שאני צריך שהערך שבחרתי בcombobox ישמר איפושהו ושתהיה לי גישה אליו בform השני.

ברגע שאני עושה את הפעולה הזאת בform השני:


ChooseLine ch=new ChooseLine();
string st = ch.choose.Text;

אני רוצה לשים בתוךst את הערך שנבחר(choose זה השם של הcombobox)

אבל בגלל שכאילו פתחתי את chooseLine מחדש נכנס לזה הערך ברירת מיחדל "בחר קו"

ולא נשמר הקו שבחרתי.

פורסם

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

פורסם
  • מחבר

איזה דרך יש לי לגשת לטופס הקיים?

אפשר לעשות את זה בלי new?

פורסם

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

ארכיון

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

דיונים חדשים