[ Príspevkov: 6 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
CheckBox

Registrovaný: 01.05.14
Prihlásený: 07.11.19
Príspevky: 152
Témy: 52 | 52
Bydlisko: Dubovce
NapísalOffline : 28.02.2017 16:52 | CheckBox

Zdravím, Mám problém s CheckBoxom vo WinForms. Problém je v tom že po zapnutí programu má CheckBox nastavenú hodnotu na true ale podmienka ktorú mám nastavenú na true nefunguje. Ako som nad tým rozmýšľal tak som prišiel na to že bude problém v metóde(?) pretože metóda sa volá private void checkDatum_CheckedChanged(object sender, EventArgs e) podla angličtiny som pochopil že sa všetky príkazy vykonajú až sa klikne na CheckBox. Preto by som sa chcel opýtať ako to zmeniť.
Kód:
Kód:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace pocitadlo
{
    public partial class Form1 : Form
    
{
        int day;
        int month;
        int year;
        int aday;
        int amonth;
        int ayear;
        int v;
        int age;
        byte[] months = new byte[13] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

        public Form1()
        {
            InitializeComponent();
        }

        private void checkDatum_CheckedChanged(object sender, EventArgs e)
        {
            if (checkDatum.Checked == false)
            {
                txtADay.Visible = true;
                txtAMonth.Visible = true;
                txtAYear.Visible = true;
                labelDatum.Visible = true;
                aday = int.Parse(txtADay.Text);
                amonth = int.Parse(txtAMonth.Text);
                ayear = int.Parse(txtAYear.Text);
                btnSend.Location = new Point(265, 104);
            }
            if (checkDatum.Checked == true)
            {
                txtADay.Visible = false;
                txtAMonth.Visible = false;
                txtAYear.Visible = false;
                labelDatum.Visible = false;
                aday = DateTime.Now.Day;
                amonth = DateTime.Now.Month;
                ayear = DateTime.Now.Year;
                btnSend.Location = new Point(162, 104);
            }
        }

        private void btnSend_Click(object sender, EventArgs e)
        {
            int s1 = 0;
            int s2 = 0;
            v = 0;
            age = 0;
            day = int.Parse(txtDay.Text);
            month = int.Parse(txtMonth.Text);
            year = int.Parse(txtYear.Text);
            if (year % 4 == 0 && ayear % 4 == 0)
                months[2] = 29;
            else months[2] = 28;
            for (int i = 1; i <= month; i++)
                s1 += months[i];
            for (int i = 1; i <= amonth; i++)
                s2 += months[i];
            v = (s1 + day) - (s2 + aday);
            if (day == aday && month == amonth)
            {
                age = ayear - year;
                if (year % 4 == 0 && ayear % 4 == 0)
                    v = v + 366;
                else v = v + 365;
            }
            else age = (ayear - year) - 1;
            if (< 0)
            {
                age++;
                if (year % 4 == 0 && ayear % 4 == 0)
                    v = v + 366;
                else v = v + 365;
            }
            Output1.Text = "Máš "+ age +" rokov";
            Output2.Text = "Za "+ v + " dní budeš mať narodeniny";
        }
    }
}


Offline

Užívateľ
Užívateľ
CheckBox

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3 | 3
Bydlisko: Košice - ok...
NapísalOffline : 28.02.2017 16:55 | CheckBox

a kedy to chceš vykonať?


_________________
GitHub: mfocko | mfocko.xyz
OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed)
Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission]
Offline

Užívateľ
Užívateľ
CheckBox

Registrovaný: 01.05.14
Prihlásený: 07.11.19
Príspevky: 152
Témy: 52 | 52
Bydlisko: Dubovce
Napísal autor témyOffline : 28.02.2017 16:59 | CheckBox

No chcel by som aby to bolo nastavené defaultne na true


Offline

Skúsený užívateľ
Skúsený užívateľ
CheckBox

Registrovaný: 24.01.08
Prihlásený: 13.09.17
Príspevky: 14572
Témy: 66 | 66
Bydlisko: Žilina
NapísalOffline : 28.02.2017 17:02 | CheckBox

Funkcia checkDatum_CheckedChanged sa vykoná, ak je priradená k eventu, po zmene stavu checkboxu. Ak chceš vykonať nejakú logiku po spustení programu, musíš zadať kód inde, napríklad do konštruktora.


_________________
C#, PHP, ...
Offline

Užívateľ
Užívateľ
CheckBox

Registrovaný: 27.06.09
Prihlásený: 04.03.23
Príspevky: 332
Témy: 3 | 3
Bydlisko: Košice - ok...
NapísalOffline : 28.02.2017 17:05 | CheckBox

alebo Form.Load


_________________
GitHub: mfocko | mfocko.xyz
OSs: archLinux + fedora (+ Windows 10 Pro Insider Preview, only if needed)
Server: archLinux [nginx + Docker (GitLab) + SSH/SFTP + local mirror (FTP/rsync - archLinux, Fedora) + samba + transmission]
Offline

Užívateľ
Užívateľ
CheckBox

Registrovaný: 01.05.14
Prihlásený: 07.11.19
Príspevky: 152
Témy: 52 | 52
Bydlisko: Dubovce
Napísal autor témyOffline : 28.02.2017 17:08 | CheckBox

Teraz ste mňa zmiatli. Takže já musím vložiť celú metódu vyššie do konštruktora alebo do Form.Load alebo iba tie podmienky? Alebo som to celé zle pochopil ?

// Spojený príspevok Uto 28.02.17 20:10

Vyriešil som to svojky (amatérsky)
Spoiler: zobraziť
Kód:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace pocitadlo
{
    public partial class Form1 : Form
    
{
        int day; int month; int year; int aday; int amonth; int ayear;
        byte[] months = new byte[13] { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };

        public Form1()
        {
            InitializeComponent();
        }

        private void checkDatum_CheckedChanged(object sender, EventArgs e)
        {
            if (checkDatum.Checked == false)
            {
                txtADay.Visible = true;
                txtAMonth.Visible = true;
                txtAYear.Visible = true;
                labelDatum.Visible = true;
                btnSend.Location = new Point(265, 104);
            }
            else
            
{
                txtADay.Visible = false;
                txtAMonth.Visible = false;
                txtAYear.Visible = false;
                labelDatum.Visible = false;
                btnSend.Location = new Point(162, 104);
            }
        }

        private void btnSend_Click(object sender, EventArgs e)
        {
            int s1 = 0; int s2 = 0; int v = 0; int age = 0;
            if (checkDatum.Checked == true)
            {
                aday = DateTime.Now.Day;
                amonth = DateTime.Now.Month;
                ayear = DateTime.Now.Year;
            }
            else
            
{
                aday = int.Parse(txtADay.Text);
                amonth = int.Parse(txtAMonth.Text);
                ayear = int.Parse(txtAYear.Text);
            }
            day = int.Parse(txtDay.Text);
            month = int.Parse(txtMonth.Text);
            year = int.Parse(txtYear.Text);
            if (year % 4 == 0 && ayear % 4 == 0)
                months[2] = 29;
            else months[2] = 28;
            for (int i = 1; i <= month; i++)
                s1 += months[i];
            for (int i = 1; i <= amonth; i++)
                s2 += months[i];
            v = (s1 + day) - (s2 + aday);
            if (day == aday && month == amonth)
            {
                age = ayear - year;
                if (year % 4 == 0 && ayear % 4 == 0)
                    v = v + 366;
                else v = v + 365;
            }
            else age = (ayear - year) - 1;
            if (< 0)
            {
                age++;
                if (year % 4 == 0 && ayear % 4 == 0)
                    v = v + 366;
                else v = v + 365;
            }
            Output1.Text = "Máš "+ age +" rokov";
            Output2.Text = "Za "+ v + " dní budeš mať narodeniny";
        }
    }
}
 


 [ Príspevkov: 6 ] 


CheckBox



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

CheckBox

v PHP, ASP

5

570

19.02.2010 9:01

arno

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v PHP, ASP

2

558

05.07.2009 13:09

Snacker

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v PHP, ASP

3

602

22.04.2009 14:53

drozdo

V tomto fóre nie sú ďalšie neprečítané témy.

Checkbox

v Ostatné programy

2

582

03.07.2015 11:57

majetan212

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox

v JavaScript, VBScript, Ajax

6

551

11.10.2011 22:03

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

CHECKBOX CHECKED

v PHP, ASP

1

541

21.07.2009 12:15

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

input - checkbox

v PHP, ASP

1

429

17.09.2011 21:46

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

checkbox checked

v PHP, ASP

9

436

07.10.2013 8:42

Elrohir

V tomto fóre nie sú ďalšie neprečítané témy.

PHP podmienka checkbox

v PHP, ASP

8

1328

19.11.2010 1:28

venom2

V tomto fóre nie sú ďalšie neprečítané témy.

upload suboru checkbox

v PHP, ASP

13

675

09.05.2009 16:43

kaidžas

V tomto fóre nie sú ďalšie neprečítané témy.

$_GET vs. CheckBox

v PHP, ASP

3

488

31.01.2008 14:36

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

CHECKBOX, checked php

v PHP, ASP

16

481

07.11.2014 13:02

stenley

V tomto fóre nie sú ďalšie neprečítané témy.

PHP DELETE with checkbox

v PHP, ASP

2

423

24.04.2010 18:57

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

Checkbox array s mysql

v PHP, ASP

10

652

19.05.2011 11:43

jtomcik

V tomto fóre nie sú ďalšie neprečítané témy.

form, checkbox alebo radio, pri zaskrtnuti submit

v JavaScript, VBScript, Ajax

1

450

08.10.2010 14:51

Ďuri



© 2005 - 2025 PCforum, edited by JanoF