פורסם 2012 בספטמבר 1713 שנים אני לומד את השפה C# באופן עצמאי במשך כמה שבועות כבר.החלטתי לעשות פרויקט קטן ב-WFA. הפרויקט הוא ליצור תוכנה לחישוב משכורת שמחולקת לשניים: עובד רגיל ואחמ"ש (אחראי משמרת).שניהם מקבלים שכר שונה ועובדים שעות עבודה שונות.הבעיה שלי היא כזו:יש לי COMBOBOX שבו יש אפשרות לבחור או "תעריף רגיל" או "תעריף אחמ"ש.הגדרתי כך שברגע שהמשתמש יבחר אפשרות "אחמ"ש" הלייבלים ישתנו בהתאם לשעות העבודה של "אחמ"ש".אך אני רוצה גם שברגע שהמשתמש בוחר ב-"אחמ"ש" יחלו עליו משתנים אחרים התקפים רק לגבי "אחמ"ש".כמו כן, אני רוצה לעשות כך, שבמידה והמשתמש ישכח להכניס ערך/ילדג על ערך, והתוכנה תקפיץ חלון עם הודעה שיבדוק את השדות שלו.הנה הקוד עד עכשיו:http://pastebin.com/V7736gBU אם משהו לא מובן בקוד אני אסביר בשמחה.תודה רבה לכם!
פורסם 2012 בספטמבר 1713 שנים קודם כל, אין דבר כזה WFA, אני חושב שאתה מתכוון ל-WinForms (:הערות כלליות: אין סיבה להשאיר handlers ריקים, ו-consts מגדירים ברמת ה-class ולא בתור פונקציות.לשאלה שלך - מה הכוונה ב"יחלו עליו משתנים אחרים"? הכוונה היא כללים אחרים?לגבי השני, אתה יכול לעשות שבלחיצה על כפתור "אישור" כלשהו, תעבור על כל השדות (labels) ותשווה את הtext שלהם למה שצריך (למשל, שהוא לא ""). בתוכניות יותר מתקדמות משתמשים בדבר שנקרא validation - שאומר שכל שדה "יודע" להצביע מתי הערך שלו נכון ומתי לא. אבל לך על משהו יותר פשוט.לגבי הקפצת חלון, אתה רוצה רק הודעה פשוטה למשתמש, ולכן כדאי להשתמש ב-MessageBox.Show (שים לב לפרמטרים השונים שהפונקציה מקבלת, כמו טקסט, כותרת, אייקון וכו').
פורסם 2012 בספטמבר 1713 שנים הבעיה שלי היא כזו:יש לי COMBOBOX שבו יש אפשרות לבחור או "תעריף רגיל" או "תעריף אחמ"ש.הגדרתי כך שברגע שהמשתמש יבחר אפשרות "אחמ"ש" הלייבלים ישתנו בהתאם לשעות העבודה של "אחמ"ש".אך אני רוצה גם שברגע שהמשתמש בוחר ב-"אחמ"ש" יחלו עליו משתנים אחרים התקפים רק לגבי "אחמ"ש".אפשר להשתמש ב VALIDATORS כמו שהבחור מעליי רשם כבר, במקרה שלך עדיף לכתוב משהו משלך פשוט יותר.כתוב עוד Class שיקרא ValidatorManager ויכיל פונ' בדיקה למשתנים שלך או אפשר אפילו לשלוח אליו את ה class הנוכחי עם כל המשתנים שלו ולבדוק אותם אחד אחד ולהחזיר שגיאה אם משהו לא הוכנס כראוי. זאת עוד סיבה, למה עדיף להגדיר משתנים שמתקבלים מהיוזר מחוץ לפונקציית הקלט ובתוך ה class הפרטי שלך, כלומר המשתנים יהיו data members של ה class שאתה כותב בו כרגעכמו כן, אני רוצה לעשות כך, שבמידה והמשתמש ישכח להכניס ערך/ילדג על ערך, והתוכנה תקפיץ חלון עם הודעה שיבדוק את השדות שלו.כמו כן שאתה כותב קוד מהסוג הזה המקבל ערך מהמשתמש מומלץ לעטוף ב try & catch ואז ברגע שתהיה שגיאה תוציא הודעה וחכה לקלט שוב (כלומר תטען את ה class שוב - מאין רקורסיה שכזה)try{ lowShiftStt = int.Parse(textBox1.Text); MidShiftStt = int.Parse(textBox2.Text); LongShiftStt = int.Parse(textBox3.Text);}(catch (Exception}תוציא הודעה למשתמש להכניס את הערכים הנכונים ותחזור לקלוט שוב
פורסם 2012 בספטמבר 1813 שנים מחבר קודם כל, אין דבר כזה WFA, אני חושב שאתה מתכוון ל-WinForms (: הערות כלליות: אין סיבה להשאיר handlers ריקים, ו-consts מגדירים ברמת ה-class ולא בתור פונקציות. לשאלה שלך - מה הכוונה ב"יחלו עליו משתנים אחרים"? הכוונה היא כללים אחרים? לגבי השני, אתה יכול לעשות שבלחיצה על כפתור "אישור" כלשהו, תעבור על כל השדות (labels) ותשווה את הtext שלהם למה שצריך (למשל, שהוא לא ""). בתוכניות יותר מתקדמות משתמשים בדבר שנקרא validation - שאומר שכל שדה "יודע" להצביע מתי הערך שלו נכון ומתי לא. אבל לך על משהו יותר פשוט. לגבי הקפצת חלון, אתה רוצה רק הודעה פשוטה למשתמש, ולכן כדאי להשתמש ב-MessageBox.Show (שים לב לפרמטרים השונים שהפונקציה מקבלת, כמו טקסט, כותרת, אייקון וכו'). 1.כן, התכוונתי לזה... חשבתי שזה פשוט Windows Form Application 2.השינויים שהתכוונתי אליהם זה שברגע שאני אשנה ב-COMBOBOX לאפשרות ה"אחמ"ש", יחלו עליו VARIABLES אחרים. הרי בתוכנה צריך להכניס לטקסט בוקס נתונים, וברגע שלוחצים "חשב", התוכנה מחשבת בהתאם לנתונים שנקבעו מראש. אז אני רוצה שברגע שהמשתמש יחליף לאחמ"ש, "יוגדרו" נתונים אחרים. מקווה שהסברתי כמו שצריך /: 3. אני רוצה שברגע שאלחץ על כפתור, הוא לא יעבור על ה-LABLES אלה על הטקס בוקס, ויוודא שהם לא ריקים ויש בהם נתון. איך אני עושה זאת? תודה רבה לכל עונה ועוזר!
פורסם 2012 בספטמבר 2213 שנים אפשרות.. תיצורList<TextBox>תוסיף בשלב האתחול של הFORM את כל הTextBoxים לרשימה.. וכשתלחץ על כפתור החישוב הסופיתרוץ על הרשימה עם foreach ותבדוק אם LabelX.text == String.Empty()חוץ מזה, בשבילך.. התכנות שלך דיי מפוזר ולא מחולק נכון. תשתדל להיות יותר פדנט.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.