עוד עזרה בwindows form app בvisual studio ?????? - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

עוד עזרה בwindows form app בvisual studio ??????


ron rosenfeld
 Share

Recommended Posts

      

אני בן 20 התחלתי ללמוד תכנות בכיתה י ובחודשים האחרונים חזרתי ללמוד תכנות לבד יש  לי ידע בc#  וכבר עשיתי כמה תוכניות בconsole application בחודשיים האחרונים התחלתי להשתמש בforms  אבל עכשיו יש לי כמה בעיות הראשונה היא איך עושים שיהיה אפשר ללחוץ על אותו כפתור כמה פעמים ברצף

וזאת הבעיה השנייה:

 

 

int incom=5; 
int lose=10;
  int startmoney = 20;
 int totalmoney ;
int newtotalmoney;

 שאני לוחץ buy פעם ראשונה זה מוריד 10 מסכום:

 

 

                 totalmoney = startmoney - lose;
                lbl_total_money.Text = totalmoney + "$";

            
ואם אחריו אני לוחץ sell הסכום שלאחר הקנייה עולה ב5:

 

 

 

 

            if(totalmoney == startmoney - lose)

 

 

            {
                totalmoney = startmoney - lose;
                newtotalmoney = totalmoney +incom;
                lbl_total_money.Text = newtotalmoney + "$";
אבל שאני לוחץ שוב על BUY   הסכום יורד ב5 למרות שהגדרתי int lose=10;  עשיתי דיבאגינג ניסיתי לשנות את הניסוח של הקוד לא עזר 
 

 

 

 

   זה הקוד המלא

int incom=5; 
int lose=10;
  int startmoney = 20;
 int totalmoney ;
int newtotalmoney;

        private void BTN_BUY_MouseClick(object sender, MouseEventArgs e)
        {
            if (totalmoney == startmoney+incom)
            {
                totalmoney = startmoney +incom;
                newtotalmoney = totalmoney - lose;
                lbl_total_money.Text = newtotalmoney+ "$";
            }
                


            else
            {
               totalmoney = startmoney - lose;
                lbl_total_money.Text = totalmoney + "$";
            }
        }

        private void BTN_SELL_Click(object sender, EventArgs e)
        {
            incom = 5;
            if(totalmoney == startmoney - lose)
            {
                totalmoney = startmoney - lose;
                newtotalmoney = totalmoney +incom;
                lbl_total_money.Text = newtotalmoney + "$";
            }


            else
            {
               totalmoney = startmoney + incom;
                lbl_total_money.Text = totalmoney + "$";
            }

           


        }

        private void lbl_total_money_Click(object sender, EventArgs e)
        {

זה לא רלוונטי

        }

 

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

  
  

נערך על-ידי ron rosenfeld
להבהיר את הבעיה בצורה יותר ברורה ולעדכן בשינוי הניסוח של הקוד
קישור לתוכן
שתף באתרים אחרים

אתה לא בכיוון, אי אפשר להגדיר את lbl_total_money.Text כמספר, זה טקסט ואין לך יכולת לשנות את סוג המשתנה.

 

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

הדרך הנכונה היא להשתמש במשתנה נוסף כמו  totalmoney, משום מה פסלת את האפשרות הזו.

קישור לתוכן
שתף באתרים אחרים

   

int incom=5; 
int lose=10;
  int startmoney = 20;
 int totalmoney ;
int newtotalmoney;

זאת הדרך המקורית :  שאני לוחץ buy פעם ראשונה זה מוריד 10 מסכום:

 

 

                 totalmoney = startmoney - lose;
                lbl_total_money.Text = totalmoney + "$";

            
ואם אחריו אני לוחץ sell הסכום שלאחר הקנייה עולה ב5:

 

 

 

 

            if(totalmoney == startmoney - lose)

 

 

            {
                totalmoney = startmoney - lose;
                newtotalmoney = totalmoney +incom;
                lbl_total_money.Text = newtotalmoney + "$";
אבל שאני לוחץ שוב על BUY   הסכום יורד ב5 למרות שהגדרתי int lose=10;  עשיתי דיבאגינג ניסיתי לשנות את הניסוח של הקוד לא עזר 
 

 

 

 

   זה הקוד המלא

int incom=5; 
int lose=10;
  int startmoney = 20;
 int totalmoney ;
int newtotalmoney;

        private void BTN_BUY_MouseClick(object sender, MouseEventArgs e)
        {
            if (totalmoney == startmoney+incom)
            {
                totalmoney = startmoney +incom;
                newtotalmoney = totalmoney - lose;
                lbl_total_money.Text = newtotalmoney+ "$";
            }
                


            else
            {
               totalmoney = startmoney - lose;
                lbl_total_money.Text = totalmoney + "$";
            }
        }

        private void BTN_SELL_Click(object sender, EventArgs e)
        {
            incom = 5;
            if(totalmoney == startmoney - lose)
            {
                totalmoney = startmoney - lose;
                newtotalmoney = totalmoney +incom;
                lbl_total_money.Text = newtotalmoney + "$";
            }


            else
            {
               totalmoney = startmoney + incom;
                lbl_total_money.Text = totalmoney + "$";
            }

           


        }

        private void lbl_total_money_Click(object sender, EventArgs e)
        {

זה לא רלוונטי

        }

 

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

 


 

נערך על-ידי ron rosenfeld
להבהיר את הבעיה בצורה יותר ברורה ולעדכן בשינוי הניסוח של הקוד
קישור לתוכן
שתף באתרים אחרים

כאמור קצת קשה לקרוא את הקוד ככה למרות שעושה רושם שטג code גם כבר לא עובד מי יודע מה ומיישר לימין במקום לשמאל.

 

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

 

הפתרון אמור להיות משהו כזה:

int incom = 5;
int lose = 10;
int totalmoney = 20;

private void BTN_BUY_MouseClick(object sender, MouseEventArgs e)
{
  totalmoney = totalmoney - lose;
  lbl_total_money.Text = totalmoney+ "$";
}

private void BTN_SELL_Click(object sender, EventArgs e)
{
  totalmoney = totalmoney + incom;
  lbl_total_money.Text = totalmoney + "$";
}

 

נערך על-ידי etal
קישור לתוכן
שתף באתרים אחרים

        int incom = 5;
        int lose = 10;
        int totalmoney = 20;
        int appels = 6;
        int buyappels = 4;
        int sellappels = 2;
        int score=0;
        int applebonus=5;

        private void btn_buy_Click(object sender, EventArgs e)
        {
            totalmoney = totalmoney - lose;
            lbl_total_money.Text = totalmoney + "$";

            appels = appels + buyappels;
            lbl_appels.Text = appels + "appels";

            if (totalmoney < lose)
            {
                btn_buy.Enabled = false;
            }
            else
            {
                if (totalmoney >= lose)
                {
                    btn_buy.Enabled = true;
                }
            }
        }

        private void btn_sell_Click(object sender, EventArgs e)
        {
            totalmoney = totalmoney + incom;
            lbl_total_money.Text = totalmoney + "$";

            appels = appels - sellappels;
            lbl_appels.Text = appels + "appels";




            if (appels < buyappels)
            {
                btn_sell.Enabled = false;
            }
            else
            {
                if (appels >= buyappels)
                {
                    btn_sell.Enabled = true;
                }
            }

          

תודה על העזרה מקודם מסתבר שבהתחלה הייתי בכיוון ואיכשהו משהו התפקשש לי  , אבל עכשיו אני רוצה לדעת איך אני מפעיל מחדש כפתור אחרי שאני משבית אותו עשיתי btn_sell.enabled=true  אבל כאשר אני מגיע למצב כזה: appels>=buyappels הכפתור עדיין מושבת

קישור לתוכן
שתף באתרים אחרים

ציטוט של ron rosenfeld
        int incom = 5;
        int lose = 10;
        int totalmoney = 20;
        int appels = 6;
        int buyappels = 4;
        int sellappels = 2;
        int score=0;
        int applebonus=5;

        private void btn_buy_Click(object sender, EventArgs e)
        {
            totalmoney = totalmoney - lose;
            lbl_total_money.Text = totalmoney + "$";

            appels = appels + buyappels;
            lbl_appels.Text = appels + "appels";

            if (totalmoney < lose)
            {
                btn_buy.Enabled = false;
            }
            else
            {
                if (totalmoney >= lose)
                {
                    btn_buy.Enabled = true;
                }
            }
        }

        private void btn_sell_Click(object sender, EventArgs e)
        {
            totalmoney = totalmoney + incom;
            lbl_total_money.Text = totalmoney + "$";

            appels = appels - sellappels;
            lbl_appels.Text = appels + "appels";




            if (appels < buyappels)
            {
                btn_sell.Enabled = false;
            }
            else
            {
                if (appels >= buyappels)
                {
                    btn_sell.Enabled = true;
                }
            }

          

תודה על העזרה מקודם מסתבר שבהתחלה הייתי בכיוון ואיכשהו משהו התפקשש לי  , אבל עכשיו אני רוצה לדעת איך אני מפעיל מחדש כפתור אחרי שאני משבית אותו עשיתי btn_sell.enabled=true  אבל כאשר אני מגיע למצב כזה: appels>=buyappels הכפתור עדיין מושבת

לא רלוונטי הסתדרתי והבנתי

 

קישור לתוכן
שתף באתרים אחרים

הצטרפ/י לדיון

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

אורח
הוסף תגובה

×   התוכן שהודבק הוא עם עיצוב.   הסר עיצוב

  Only 75 emoji are allowed.

×   הקישור שלך הוטמע אוטומטית.   הצג כקישור רגיל

×   התוכן הקודם שלך שוחזר אוטומטית.   נקה הכל

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
  • צור חדש...