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

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

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

איך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn)

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

    @mekev
    יתכן מאוד שחשבשבת יצרו את הUI שלהם עם HTML ופקד WebBrowser (שמבוסס על IE, אבל בינתיים עובד).

    dovidD מנותק
    dovidD מנותק
    dovid
    ניהול
    כתב ב נערך לאחרונה על ידי dovid
    #4

    @חגי לא, זה winforms.
    אולי הם השתמשו בחבילה של פקדים של צד שלישי, לא נראה לי.

    • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
    • בכל נושא אפשר ליצור קשר dovid@tchumim.com
    חגיח תגובה 1 תגובה אחרונה
    0
    • yossizY yossiz

      @mekev אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

      אבל זה נתן לי את התוצאה רק בעת עריכת התא (כי זה נמצא באירוע של העריכה)

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

      הפתרון כנראה הוא שבמקום שהתא/עמודה יהיו מסוג DataGridViewTextBoxCell/DataGridViewTextBoxColumn, במקום זה תעשה סוג תא/עמודה מותאם אישית שמארח קונטרול שנותן לך את האפשרויות שאתה מבקש.

      עיין כאן:
      https://docs.microsoft.com/en-us/dotnet/desktop/winforms/controls/how-to-host-controls-in-windows-forms-datagridview-cells?view=netframeworkdesktop-4.8

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

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

      yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי
      #5

      @yossiz אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

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

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

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

      תגובה 1 תגובה אחרונה
      1
      • M mekev

        שפה: c# - winforn

        שאלה:
        איך ניתן להוסיף פס גלילה (Scrollbar) ל'תא' בעמודה ספציפית בdataGridView

        רקע:
        יש לי dataGridView שרוחב העמודות קבוע
        וכאשר תוכן התא גולש מרוחב העמודה, הטקסט ממשיך בשורה נוספת (וגובה העמודה גדל בהתאמה)

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

        הפתרון שאני מעוניין זה להגדיר לתא גובה קבוע, ולהוסיף לתא פס גלילה

        העליתי בחכתי עד כה:

         private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
                {
              
                    if ((e.Control is TextBox) && e.CellStyle.WrapMode == DataGridViewTriState.True)
                    {
                        TextBox textBox = e.Control as TextBox;              
                        textBox.ScrollBars = ScrollBars.Vertical;
                    }
        
        
                }
        

        אבל זה נתן לי את התוצאה רק בעת עריכת התא (כי זה נמצא באירוע של העריכה)
        בעוד שאני מעוניין שזה יהיה זמין כל הזמן (בפרט שאני לא מאפשר את העריכה, אלא קריאה בלבד)


        בחשבשבת זה קיים (רק שאינני יודע באיזה שפה נכתבה)
        d1ca32d7-afd3-4b10-a1cd-cf7435fa0e23-image.png

        משתמש תמיםמ מנותק
        משתמש תמיםמ מנותק
        משתמש תמים
        כתב ב נערך לאחרונה על ידי
        #6

        @mekev
        מכאן זה נראה שזה לא קיים 😞 (נכון ל2019 לפחות)

        עזרתי לך? תראה לי את זה על ידי לחיצה על ה^ בצד שמאל למטה.

        yossizY משתמש תמיםמ 2 תגובות תגובה אחרונה
        0
        • משתמש תמיםמ משתמש תמים

          @mekev
          מכאן זה נראה שזה לא קיים 😞 (נכון ל2019 לפחות)

          yossizY מנותק
          yossizY מנותק
          yossiz
          כתב ב נערך לאחרונה על ידי yossiz
          #7

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

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

          תגובה 1 תגובה אחרונה
          0
          • משתמש תמיםמ משתמש תמים

            @mekev
            מכאן זה נראה שזה לא קיים 😞 (נכון ל2019 לפחות)

            משתמש תמיםמ מנותק
            משתמש תמיםמ מנותק
            משתמש תמים
            כתב ב נערך לאחרונה על ידי משתמש תמים
            #8

            @yossiz ראיתי שזה aשל חברה האחרת אבל ההיגיון שלי אומר אמר שהם לא באו להוריד את מה שיש בבסיס.

            עזרתי לך? תראה לי את זה על ידי לחיצה על ה^ בצד שמאל למטה.

            תגובה 1 תגובה אחרונה
            1
            • dovidD dovid

              @חגי לא, זה winforms.
              אולי הם השתמשו בחבילה של פקדים של צד שלישי, לא נראה לי.

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

              @dovid
              זה גם קיים בwinforms

              dovidD תגובה 1 תגובה אחרונה
              0
              • חגיח חגי

                @dovid
                זה גם קיים בwinforms

                dovidD מנותק
                dovidD מנותק
                dovid
                ניהול
                כתב ב נערך לאחרונה על ידי dovid
                #10

                @חגי לא התכוונתי שהמעטפת winforms.
                התכוונתי שהפקד עצמו הוא מרונדר כwinforms ולא כhtml.
                זה מאוד קל לזהות.

                • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                תגובה 1 תגובה אחרונה
                1
                • M mekev

                  שפה: c# - winforn

                  שאלה:
                  איך ניתן להוסיף פס גלילה (Scrollbar) ל'תא' בעמודה ספציפית בdataGridView

                  רקע:
                  יש לי dataGridView שרוחב העמודות קבוע
                  וכאשר תוכן התא גולש מרוחב העמודה, הטקסט ממשיך בשורה נוספת (וגובה העמודה גדל בהתאמה)

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

                  הפתרון שאני מעוניין זה להגדיר לתא גובה קבוע, ולהוסיף לתא פס גלילה

                  העליתי בחכתי עד כה:

                   private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
                          {
                        
                              if ((e.Control is TextBox) && e.CellStyle.WrapMode == DataGridViewTriState.True)
                              {
                                  TextBox textBox = e.Control as TextBox;              
                                  textBox.ScrollBars = ScrollBars.Vertical;
                              }
                  
                  
                          }
                  

                  אבל זה נתן לי את התוצאה רק בעת עריכת התא (כי זה נמצא באירוע של העריכה)
                  בעוד שאני מעוניין שזה יהיה זמין כל הזמן (בפרט שאני לא מאפשר את העריכה, אלא קריאה בלבד)


                  בחשבשבת זה קיים (רק שאינני יודע באיזה שפה נכתבה)
                  d1ca32d7-afd3-4b10-a1cd-cf7435fa0e23-image.png

                  M מנותק
                  M מנותק
                  mekev
                  כתב ב נערך לאחרונה על ידי
                  #11

                  @mekev
                  אחרי שניסיתי לדוג במודעות דרושים של חשבשבת במרחבי גוגל (בדרישות תפקיד - שפות תכנות) ולא עלתה בידי

                  אזרתי כגבר חלצי
                  ופניתי לחשבשבת
                  ובאדיבות ובסבלנות רבה ענו
                  שלמרות שלפי השנתון זה מתאים לwinform
                  זה לא בנוי בC# כלל

                  ועדיין @yossiz ושאר המשתמשים החשובים עזרתם לי מאוד
                  כי עברתי לחפש במקום איך לבצע 'פס גלילה' ל 'איך להוסיף פקד'
                  והיות שפקד של לוח שנה הינו נפוץ ונצרך יותר
                  אכן מצאתי כאן וכאן ויתכן שיש עוד,
                  רק שטרם הספקתי לבדוק את פעילות הקוד ובעיקר איך אני ממיר את זה לצרכים שלי

                  חגיח yossizY 2 תגובות תגובה אחרונה
                  4
                  • M mekev

                    @mekev
                    אחרי שניסיתי לדוג במודעות דרושים של חשבשבת במרחבי גוגל (בדרישות תפקיד - שפות תכנות) ולא עלתה בידי

                    אזרתי כגבר חלצי
                    ופניתי לחשבשבת
                    ובאדיבות ובסבלנות רבה ענו
                    שלמרות שלפי השנתון זה מתאים לwinform
                    זה לא בנוי בC# כלל

                    ועדיין @yossiz ושאר המשתמשים החשובים עזרתם לי מאוד
                    כי עברתי לחפש במקום איך לבצע 'פס גלילה' ל 'איך להוסיף פקד'
                    והיות שפקד של לוח שנה הינו נפוץ ונצרך יותר
                    אכן מצאתי כאן וכאן ויתכן שיש עוד,
                    רק שטרם הספקתי לבדוק את פעילות הקוד ובעיקר איך אני ממיר את זה לצרכים שלי

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

                    @mekev אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

                    ועדיין @yossiz ושאר המשתמשים החשובים עזרתם לי מאוד
                    כי עברתי לחפש במקום איך לבצע 'פס גלילה' ל 'איך להוסיף פקד'
                    והיות שפקד של לוח שנה הינו נפוץ ונצרך יותר
                    אכן מצאתי כאן וכאן ויתכן שיש עוד,
                    רק שטרם הספקתי לבדוק את פעילות הקוד ובעיקר איך אני ממיר את זה לצרכים שלי

                    הם ענו לך במה זה כתוב?
                    vb6 עם פקדי activex?
                    delphi?

                    תגובה 1 תגובה אחרונה
                    0
                    • M mekev

                      @mekev
                      אחרי שניסיתי לדוג במודעות דרושים של חשבשבת במרחבי גוגל (בדרישות תפקיד - שפות תכנות) ולא עלתה בידי

                      אזרתי כגבר חלצי
                      ופניתי לחשבשבת
                      ובאדיבות ובסבלנות רבה ענו
                      שלמרות שלפי השנתון זה מתאים לwinform
                      זה לא בנוי בC# כלל

                      ועדיין @yossiz ושאר המשתמשים החשובים עזרתם לי מאוד
                      כי עברתי לחפש במקום איך לבצע 'פס גלילה' ל 'איך להוסיף פקד'
                      והיות שפקד של לוח שנה הינו נפוץ ונצרך יותר
                      אכן מצאתי כאן וכאן ויתכן שיש עוד,
                      רק שטרם הספקתי לבדוק את פעילות הקוד ובעיקר איך אני ממיר את זה לצרכים שלי

                      yossizY מנותק
                      yossizY מנותק
                      yossiz
                      כתב ב נערך לאחרונה על ידי
                      #13

                      @mekev יש לי רעיון פשוט שאולי יתאים לך
                      תגביל את הגודל של המחרוזת שהתא מקבל,
                      ואם זה יותר מגודל התא תראה את זה בטולטיפ בעת hover

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

                      M תגובה 1 תגובה אחרונה
                      1
                      • yossizY yossiz

                        @mekev יש לי רעיון פשוט שאולי יתאים לך
                        תגביל את הגודל של המחרוזת שהתא מקבל,
                        ואם זה יותר מגודל התא תראה את זה בטולטיפ בעת hover

                        M מנותק
                        M מנותק
                        mekev
                        כתב ב נערך לאחרונה על ידי mekev
                        #14

                        @yossiz אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

                        אם זה יותר מגודל התא תראה את זה בטולטיפ בעת hover

                        בברירת מחדל של dataGridView זה אכן כך

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

                        ולכן גם הפתרון לעשות פאנל עם תווית-טקסט ולהכניס אותו לאירוע בעת העברת העכבר לא יעזור לי במקרה דנן

                        yossizY תגובה 1 תגובה אחרונה
                        0
                        • M mekev

                          @yossiz אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

                          אם זה יותר מגודל התא תראה את זה בטולטיפ בעת hover

                          בברירת מחדל של dataGridView זה אכן כך

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

                          ולכן גם הפתרון לעשות פאנל עם תווית-טקסט ולהכניס אותו לאירוע בעת העברת העכבר לא יעזור לי במקרה דנן

                          yossizY מנותק
                          yossizY מנותק
                          yossiz
                          כתב ב נערך לאחרונה על ידי yossiz
                          #15

                          @mekev אמר באיך ניתן להוסיף פס גלילה (Scrollbar) לתא בעמודה ספציפית בטבלה (c# - winforn):

                          אין סימן למשתמש לדעת שאמור להיות שורה נוספת כדי לבצע ריחוף על התא

                          את זה תוכל לפתור על ידי הוספת סימון כלשהו שיסב את תשומת הלב של המשתמש
                          תוכל להוסיף את הסימון לתוכן של התא באירוע CellFormatting או בצורה יותר מסובכת, להתאים אישית את ה-paint של התא, כמו שמתועד פה

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

                          תגובה 1 תגובה אחרונה
                          2
                          • dovidD dovid העביר נושא זה מ-תכנות ב-
                          תגובה
                          • תגובה כנושא
                          התחברו כדי לפרסם תגובה
                          • מהישן לחדש
                          • מהחדש לישן
                          • הכי הרבה הצבעות


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

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

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