דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. ארכיון code613m
  4. קוד חוזר בפתיחה וסגירה של טפסים WinForms

קוד חוזר בפתיחה וסגירה של טפסים WinForms

מתוזמן נעוץ נעול הועבר ארכיון code613m
5 פוסטים 4 כותבים 411 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • נתנאלנ מנותק
    נתנאלנ מנותק
    נתנאל
    כתב ב נערך לאחרונה על ידי
    #1

    יש לי טופס ראשי שממנו נפתחים כמה וכמה טפסים, ובסגירה של כל טופס חוזר להופיע הטופס הראשי.
    עשיתי event בכל טופס משנה, שמתפרסם בשעה שטופס המשנה נסגר [אם על ידי כפתור, אם על ידי סגירה ממשית].
    ובטופס הראשי לאחר כל פתיחה של טופס משנה, כתבתי כך:

    private void button1_Click(object sender, EventArgs e)
            {
                AllTogether.Form1 h = new AllTogether.Form1();
                h.myevent += new Form1.closethisformandshowfather(h_myevent);
                h.FormClosed += new FormClosedEventHandler(h_myevent);
                h.Show();         
                this.Hide();
            }
            void h_myevent(object sourse, EventArgs r)
            {
               this.Show();
            }
    

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

    פורסם במקור בפורום CODE613 ב18/08/2016 10:58 (+03:00)

    הצטרפות לרשימת התפוצה בעניני תכנות JS , React , Node וכל מיני דברים מענינים כאן :cool:
    https://programing-tips.web.app/

    תגובה 1 תגובה אחרונה
    0
    • רחמיםר מנותק
      רחמיםר מנותק
      רחמים מורחק
      כתב ב נערך לאחרונה על ידי
      #2

      לדעתי אתה אמור להשתמש ב ShowDialog וכך כל טופס יוצג בחזית עד שהוא יסגר ולאחר הסגירה החלון הראשי יחזור בצורה אוטומטית להיות בחזית.

      פורסם במקור בפורום CODE613 ב18/08/2016 11:04 (+03:00)

      תגובה 1 תגובה אחרונה
      3
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #3

        @רחמים

        לדעתי אתה אמור להשתמש ב ShowDialog וכך כל טופס יוצג בחזית עד שהוא יסגר ולאחר הסגירה החלון הראשי יחזור בצורה אוטומטית להיות בחזית.

        בהמשך לזה, תעשה פונקצייה בטופס הראשי שמקבלת את טופס המשנה, ומה שהיא עושה זה:

        1. להסתיר את הראשי.
        2. לפתוח את המשנה בדיאלוג כמו שרחמים אמר
        3. אחרי הסגירה, זה מציג את הראשי שוב. (שלב זה לא ירוץ עד שלא תסגור את הדיאלוג)

        ואז פשוט תשלח לפונקצייה את הטופס משנה.

        פורסם במקור בפורום CODE613 ב18/08/2016 11:12 (+03:00)

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        תגובה 1 תגובה אחרונה
        1
        • נתנאלנ מנותק
          נתנאלנ מנותק
          נתנאל
          כתב ב נערך לאחרונה על ידי
          #4

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

          רעיון נפלא!
          במקרה כאן אני לא יכול להתשמש בShowDialog ולהשאיר את הטופס הראשי פתוח, כי זה משהו שצריך ריכוז מקסימלי של המשתמש וגם זה תופס מקום.
          הנה המימוש:

          public void ShowForm(Form newForm)
                  {
          
                      this.Hide();
                      newForm.ShowDialog();
                      this.Show();
                  
                  }
          

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

          פורסם במקור בפורום CODE613 ב18/08/2016 11:30 (+03:00)

          הצטרפות לרשימת התפוצה בעניני תכנות JS , React , Node וכל מיני דברים מענינים כאן :cool:
          https://programing-tips.web.app/

          תגובה 1 תגובה אחרונה
          0
          • S מנותק
            S מנותק
            softs
            כתב ב נערך לאחרונה על ידי
            #5

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

            פורסם במקור בפורום CODE613 ב19/08/2016 09:39 (+03:00)

            תגובה 1 תגובה אחרונה
            4

            בא תתחבר לדף היומי!
            • התחברות

            • אין לך חשבון עדיין? הרשמה

            • התחברו או הירשמו כדי לחפש.
            • פוסט ראשון
              פוסט אחרון
            0
            • דף הבית
            • קטגוריות
            • פוסטים אחרונים
            • משתמשים
            • חיפוש
            • חוקי הפורום