如何禁用特定时间段的命令按钮

时间:2014-04-08 05:33:54

标签: c# winforms

我正在创建emp_attendance注册。在我的表单中有两个命令按钮Time-in和Time-out。我希望员工每天能够点击timeintimeout按钮。

有可能吗?

4 个答案:

答案 0 :(得分:1)

你可以肯定这样做,但你必须自己处理它。只需在某处设置一个标记,以提醒您用户已按下某个按钮,并在每次打开表单时使用此标志设置按钮的Enabled属性。

<强>&GT;&GT;&GT;更新&lt;&lt;&lt;

这样的事情应该有效:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace TFF
{
    public partial class Form1 : Form
    {
        private static DateTime? button1ClickAt = null;
        private static DateTime? button2ClickAt = null;

        public Form1()
        {
            InitializeComponent();
            HandleButtonEnable();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            button1ClickAt = DateTime.Now;
            HandleButtonEnable();
        }

        private void button2_Click(object sender, EventArgs e)
        {
            button2ClickAt = DateTime.Now;
            HandleButtonEnable();
        }

        private void HandleButtonEnable()
        {
            button1.Enabled = (button1ClickAt == null || button1ClickAt.Value.Date != DateTime.Now.Date);
            button2.Enabled = (button2ClickAt == null || button2ClickAt.Value.Date != DateTime.Now.Date);
        }
    }
}

每次按下按钮都会更新相应的时间戳:如果从未点击过按钮,或者在不同的日期点击按钮,则启用按钮(因此您每天只能点击一次按钮)。

答案 1 :(得分:0)

是的,这是可能的,可以通过两种方式完成,

  1. 第一个选项是仅为 timein 超时设置一个button。如果 EMP 选择button内容根据您的按钮点击事件从TIME IN更改为TIME OUT。
  2. 其次,对于 Timein 超时,您可以分别有两个buttons,设置按钮点击事件以更改其他按钮的属性,如{{1} }或enabled。因此 EMP 只能选择一个按钮。

答案 2 :(得分:0)

button1.Attributes.Add("onclick", "this.disabled =true;" + ClientScript.GetPostBackEventReference(button1, null) + ";");

这会使您的按钮在单击后失效。

答案 3 :(得分:0)

是的,任何事情都可能在IT​​中,这取决于你的方法......

在两个按钮的点击事件上写一些逻辑,可能是 - 在数据库中的同一天为该员工存储一个比特值,成功提交检查比特值后,只需禁用按钮并执行第二次按钮点击事件的逻辑相同。

希望这会为你创造一些逻辑。如果需要更多解释请告诉我......