Hogyan tudom megváltoztani a checkbox értékét ha le telik x idő?
a kódom:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
using System.IO;
using System.Configuration;
namespace csomagolas_aktivalas
{
public partial class utasitas : Form
{
public utasitas()
{
InitializeComponent();
}
public void Form1_Load(object sender, EventArgs e)
{
this.BackColor = Color.Blue;
this.TransparencyKey = Color.Blue;
timer1.Start();
}
public void label1_Click(object sender, EventArgs e)
{
}
public void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked == true)
{
label5.Visible = true;
}
if (checkBox2.Checked == false)
{
label5.Visible = false;
}
if (checkBox2.Checked == true)
{
label6.Visible = true;
}
if (checkBox2.Checked == false)
{
label6.Visible = false;
}
}
public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
this.Hide();
belepes ss = new belepes(this);
ss.Show();
}
if (checkBox1.Checked == true)
{
textBox1.Enabled = true;
}
if (checkBox1.Checked == true)
{
textBox2.Enabled = true;
}
if (checkBox1.Checked == true)
{
textBox3.Enabled = true;
}
if (checkBox1.Checked == false)
{
textBox1.Enabled = false;
}
if (checkBox1.Checked == false)
{
textBox2.Enabled = false;
}
if (checkBox1.Checked == false)
{
textBox3.Enabled = false;
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void timer1_Tick(object sender, EventArgs e)
{
int i = 0;
i++;
if (i == 10)
{
checkBox1.Checked = false;
}
timer1.Stop();
}
}
}
úgy épül fel ha a checkbox egy true akkor fel dob egy form2-t amin be kell jelentkezni ekkor aktív marad a checkbox. azt szeretném, hogy ha megtörtént a belépés a checkbox x idő elteltével legyen false.
ezzel a kóddal jelenleg a beállított idő után vissza tér a form2-re.
mi a hiba?
Nem teljesen értem, hogy mit szeretnél.
DE a timer1_Tick metódusod minden lefutáskor létrehoz egy i változót 0 értékkel, majd növeli 1-el. A feltétel sose lesz igaz, ezért nem is állítódik a checkBox1 false-ra.
A kódban látott logikai hibák láttán valószínűsítem a 'form2'(gondolom a 'belepes')-ben is van néhány hiba.
Két metódus átláthatóbban:
public void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked == true)
{
label5.Visible =
label6.Visible = true;
}
else
{
label5.Visible =
label6.Visible = false;
}
}
public void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked == true)
{
this.Hide();
belepes ss = new belepes(this);
ss.Show();
textBox1.Enabled =
textBox2.Enabled =
textBox3.Enabled = true;
}
else
{
textBox1.Enabled =
textBox2.Enabled =
textBox3.Enabled = false;
}
}
A másik dolog, hogy ebben a kódban vizsgálni kell, hogy 'megtörtént-e a belépés'. Ehhez kell a 'belepes' kódnak visszaadnia egy értéket, amit majd lehet vizsgálni.
Pl.: Csinálsz egy osztályszintű változót ebbe a kódba:
public static bool belepettE = false;
A belepes-nél, ha bejelentkezett arra Visible false vagy bármi, de előtte belepettE = true;
Illetve addig kell futnia a timer-nek, amíg a feltétel nem teljesül.
private void timer1_Tick(object sender, EventArgs e)
{
if (belepettE)
{
checkBox1.Checked = false;
timer1.Stop();
}
}
Bár kíváncsi lennék mi a program célja. :D
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!