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

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

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

איך לגשת לתיבת טקסט בwunform מתוך פונקציה

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

    לשאלה המלאה

    ניתן לפנות אלי גם ב al0548446188@gmail.com
    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

    yossizY תגובה 1 תגובה אחרונה
    0
    • yossizY מחובר
      yossizY מחובר
      yossiz
      השיב לאוריי ב נערך לאחרונה על ידי
      #2

      @אוריי אמר באיך לגשת לאובייקטים בwunform מתוך פונקציה:

      ואני מקבל שגיאה כזו

      עדיף להביא את הטקסט של השגיאה שבד"כ כוללת מידע פרטני, הלינק מביא טקסט יותר ג'נרי.

      האם form1 היא שם של קלאס או של מופע של הקלאס?

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

        @yossiz

        Severity	Code	Description	Project	File	Line	Suppression State
        Error	CS0120	An object reference is required for the non-static field, method, or property 'Form1.TextBoxCmd'	SearchByTime	C:\Users\uri\source\repos\SearchByTime\SearchByTime\Form1.cs	76	Active
        
        

        ניתן לפנות אלי גם ב al0548446188@gmail.com
        ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

        yossizY תגובה 1 תגובה אחרונה
        0
        • yossizY מחובר
          yossizY מחובר
          yossiz
          השיב לאוריי ב נערך לאחרונה על ידי
          #4

          @אוריי לא ענית על השאלה שלי

          @yossiz אמר באיך לגשת לאובייקטים בwunform מתוך פונקציה:

          האם form1 היא שם של קלאס או של מופע של הקלאס?

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

          אורייא תגובה 1 תגובה אחרונה
          1
          • אורייא מנותק
            אורייא מנותק
            אוריי
            השיב לyossiz ב נערך לאחרונה על ידי
            #5

            @yossiz
            זה שם של הטופס

            public partial class Form1 : Form
            

            ניתן לפנות אלי גם ב al0548446188@gmail.com
            ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב לאוריי ב נערך לאחרונה על ידי dovid
              #6

              @אוריי בשפה מונחית עצמים כמו C# יש מושג של מחלקה, ויש מופע.
              מחלקה היא כמו תבנית עוגה, והמופע היא כמו העוגה. למחלקה אחת יכול להיות מופעים רבים.

              נניח ישנה מחלקה כזאת:

              class MyExample 
              {
                   public int Name {get; set; }
              }
              

              אם תנסה לכתוב בקוד MyExample.Name תקבל שגיאה (An object reference is required for the non-static field, method, or property 'Name'), כי זו רק התבנית, אתה חייב ליצור מופע ככה:

              MyExample mofa = new MyExample();
              Console.WriteLine(mofa.Name);
              

              אבל, יש תבניות שיש להם כן חברים (שם כולל למאפיינים פונקציות וכל מה שיכול להיות במחלקה) משל עצמם ללא מופע, וממילא כן ניתן לגשת למאפיין ישירות. החברים האלו צריכים להיות מסומנים עם הציון static כלומר הערך אינו דינמי ומשתנה פר מופע, אלא אחיד לכל המופעים - הוא חלק מהתבנית.

              אתה ניגש לTextBoxCmd שהוא חבר במחלקה Form1. אבל הוא לא סטטי, כלומר הוא קיים רק אם תיצור מהמחלקה את העוגה, כלומר תעשה new.
              (מעניין שכתבת form1 באותיות קטנות וזה לא עשה לך שגיאה, לכאורה אם זה משתנה קיים אז זה צריך לעבוד לגמרי ואם זה לא זה צריך להיכשל עם שגיאה של מציין לא מוכר).

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              upsilon01U תגובה 1 תגובה אחרונה
              7
              • upsilon01U מנותק
                upsilon01U מנותק
                upsilon01
                השיב לdovid ב נערך לאחרונה על ידי upsilon01
                #7

                @dovid
                אני חושב שמחלקה זה יותר כמו המתכון של העוגה
                המופע הוא העוגה
                והתבנית, אולי ממשק... (אפשר להכין בה גם עוגת גבינה, וגם פשטידה, אבל שניהם יהיו עגולים.)

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

                  אצה מנסה לגשת לאוביקט דינמי עם פונקציה סטטית. יהיה יותר כל לעזור אם תשתף את כל ה class

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

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

                    1. הטעות שלי הייתה במשמעות המילה אובייקט כאשר אני חשבתי שמדובר בשם כולל לחלקים מסויימים בטופס שאר הגולשים הבינו שמדובר במשתנה והצדק איתם (אי הבנה שלי במשמעות המילה נכון ע"כ זה סיבך את כולם כולל אותי [אע"פ שבזכות זה למדתי דברים חדשים 🙂 ])
                    2. ולגופו של שאלה
                      יש לי טופס בפרוייקט winForms ששמו Form1 בתוך הטופס יש לי תיבת טקסט בשם TextBoxCmd.
                      בתוך הclass יש לי פונקציה סטטית שממנה אני רוצה לטפל בתיבת טקסט (לכתוב טקסט ולמחוק וכו') אמנם שאני ניגש לתיבת טקסט באופן הבא אני מקבל את השגיאה הבאה.
                      זה הפונקציה
                            public static void Shortcut(FileInfo file)
                            {
                                
                                TextBoxCmd.Text =  file.FullName;
                            }
                    

                    וזו השגיאה

                    Severity	Code	Description	Project	File	Line	Suppression State
                    Error	CS0120	An object reference is required for the non-static field, method, or property 'Form1.TextBoxCmd'	SearchByTime	C:\Users\uri\source\repos\SearchByTime\SearchByTime\Form1.cs	76	Active
                    

                    וזה הclass המלא כעצת @Aharon-0

                     public partial class Form1 : Form
                        {
                    
                            FolderBrowserDialog fbd;
                            //DateTime DMin;
                            //DateTime DMax;
                    
                            public Form1()
                            {
                                InitializeComponent();
                            }
                    
                            private void DateTimePicker1_ValueChanged(object sender, EventArgs e)
                            {
                    
                            }
                    
                            private void Form1_Load(object sender, EventArgs e)
                            {
                    
                            }
                    
                            private void Label1_Click(object sender, EventArgs e)
                            {
                    
                            }
                    
                            private void SelectAFolder_Click(object sender, EventArgs e)
                            {
                                using (fbd = new FolderBrowserDialog())
                                {
                                    DialogResult result = fbd.ShowDialog();
                    
                                    if (result == DialogResult.OK && !string.IsNullOrWhiteSpace(fbd.SelectedPath))
                                    {
                                        TextPath.Text = fbd.SelectedPath;
                                    }
                                }
                            }
                    
                            private void Search_Click(object sender, EventArgs e)
                            {
                                
                                
                                    var all = new DirectoryInfo(fbd.SelectedPath).EnumerateFiles("*", new EnumerationOptions { RecurseSubdirectories = true });
                                    foreach (var file in all)
                                        Shortcut(file);
                                
                    
                            }
                    
                            private void TextBoxCmd_TextChanged(object sender, EventArgs e)
                            {
                    
                            }
                    
                    
                            /// <summary>
                            /// פונקצית פעולות על כל קובץ
                            /// </summary>
                            public static void Shortcut(FileInfo file)
                            {
                                
                                Form1.TextBoxCmd.Text =  file.FullName; 
                            }
                    
                        }
                    

                    אני מקווה שעתה זה כתוב יותר ברור

                    ניתן לפנות אלי גם ב al0548446188@gmail.com
                    ותמיד... אבל תמיד תוכלו לשאול אותי ב :) כאן שאלות באקסל

                    dovidD תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      השיב לאוריי ב נערך לאחרונה על ידי
                      #10

                      @אוריי במקרה שלנו, המחלקה קוראים לה Form1.
                      כמה Form1 יש באפליקציה שבנית? אם מדברים מבחינת מחלקות, יש רק אחת.
                      אבל אם מדברים על מופעים, כלומר כמה פעמים אפשר לעשות new Form1? כמה שרוצים, בין אפס לאין סוף, כלומר אפשר הרבה מופעים לאותה מחלקה.
                      במחלקה Form1 עצמה בפונקציה לא סטטית, כשאתה כותב TextBoxCmd אז זה מתייחס לTextBoxCmd של המופע הנוכחי (this). אבל פונקציה סטטית אינה תלויה במופע, ואין לה מושג "מופע נוכחי" ולכן היא לא יודעת לאיזה TextBoxCmd לפנות, הרי יכול להיות אלף כאלו.

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

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      תגובה 1 תגובה אחרונה
                      3
                      • dovidD dovid העביר נושא זה מ-תכנות ב-

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

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

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