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 SunVoteARSPPT.Properties;
using GeneralLib;
using System.Threading;
//using SunVoteARSPPT.Common;
namespace SunVoteARSPPT
{
public partial class FrmRushAnswer : Form
{
private int count = 3;//倒计时次数
private bool canPressQD = false;
///
/// 是否可开始抢答,用作外部判断屏蔽按键,解决和防止时间未到就收到键盘按键提前抢答。
/// 创建:杨斌 2011-08-18
///
public bool CanPressQD
{
get { return canPressQD; }
private set { canPressQD = value; }
}
public FrmRushAnswer()
{
InitializeComponent();
}
private bool isRunForm = false;
///
/// 判断抢答窗体是否在运行。杨斌 2015-04-29
///
public bool IsRun
{
get
{
return isRunForm;
}
}
private void FrmRushAnswer_Load(object sender, EventArgs e)
{
ControlOper.CenterForm(this, true);//杨斌 2014-09-16
//多语言初始化控件文本
//GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
this.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "FrmRushAnswer", "抢答");
lblTitle.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "lblTitle", "请准备抢答");
lblMsg.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "lblMsg", "抢答中…");
//杨斌 2014-05-20
lblMsg.Visible = false;
picNum.Visible = true;
//count = 0;//杨斌 2013-12-19
if (count > 3)//最多支持3秒(只有3个图片)
count = 3;
canPressQD = false;//杨斌 2011-08-18
trm.Interval = 1;
if (count > 0)
{
picNum.Visible = true;
trm.Start();
}
else
{
picNum.Visible = false;
canPressQD = true;
StartRushAnswer();//杨斌 2014-05-20
}
lblMsg.Text = "";
//StartRushAnswer();
//if (Screen.AllScreens.Count() == 1)
// this.Opacity = 0.9;
//else
// this.Opacity = 1;
}
///
/// 计时器事件
///
///
///
private void trm_Tick(object sender, EventArgs e)
{
trm.Interval = 1000;
if (count == 0)
{
trm.Stop();
//开始抢答
StartRushAnswer();
canPressQD = true;//杨斌 2011-08-18
}
else if (count > 0)
{
switch (count)
{
case 3:
picNum.BackgroundImage = Resources._3;
break;
case 2:
picNum.BackgroundImage = Resources._2;
break;
case 1:
picNum.BackgroundImage = Resources._1;
break;
}
}
count = count - 1;
}
///
/// 退出抢答
/// 创建:杨斌 2010-11-15
///
public void ExitRushAnswer()
{
StopRushAnswer();
this.Close();
}
private void picClose_Click(object sender, EventArgs e)
{
ExitRushAnswer();
}
///
/// 开始抢答
///
public void StartRushAnswer()
{
isRunForm = true;//杨斌 2015-04-29
FrmVoteBar frmVoteBar = Globals.SunVoteARSAddIn.frmVoteBar;
lblMsg.Visible = true;//杨斌 2014-05-20
//GlobalInfo.response.RushAnswerStart();
//VotingService.Start(null);
lblMsg.Text = GlobalInfo.SysLanguage.LPT.ReadString(this.Name, "lblMsg1", "抢答中…");//2013-12-23
lblTitle.Text = "";
frmVoteBar.isRushAnswer = true;
picNum.Visible = false;
GlobalInfo.response.RushAnswerStart();
}
///
/// 停止抢答
///
public void StopRushAnswer()
{
FrmVoteBar frmVoteBar = Globals.SunVoteARSAddIn.frmVoteBar;
canPressQD = false;//杨斌 2011-08-18 防止两个键盘都同时按了,在基站停止前,后面收到的键盘也能提交,如:先显示3,再显示5
//VotingService.Stop(null);
GlobalInfo.response.RushAnswerStop();
if (frmVoteBar.IsVoteStart)
{
Globals.SunVoteARSAddIn.PPTShow.IsAutoShowNext = !frmVoteBar.IsVoteStart;
frmVoteBar.VoteStart(!frmVoteBar.IsVoteStart);
}
frmVoteBar.isRushAnswer = false;
trm.Stop();//停止抢答时停止计时器 杨斌 2011-08-18
trm.Enabled = false;//停止抢答时停止计时器
}
///
/// 显示抢答结果
///
///
public void ShowRushAnswer(ResponsePar ObjResponsePar)
{
if (!canPressQD) return;
StopRushAnswer();
string nameCol = GlobalInfo.response.ShowNameCol;
string keyIdOrName = "";
if (!string.IsNullOrEmpty(nameCol))
{
keyIdOrName = RosterList.GetRushAnswerShow(nameCol, ObjResponsePar.KeyID.ToString());
}
if (string.IsNullOrEmpty(keyIdOrName))
{
keyIdOrName = ObjResponsePar.KeyID.ToString();
string temp = GlobalInfo.SysLanguage.LPT.ReadString("FrmRushAnswer", "lblMsg2", "请-号键盘作答!");
temp = temp.Replace("-", keyIdOrName);
lblMsg.Text = temp;
}
else
{
string temp = GlobalInfo.SysLanguage.LPT.ReadString("FrmRushAnswer", "lblMsg3", "请-作答!");
temp = temp.Replace("-", keyIdOrName);
lblMsg.Text = temp;
}
//if (ObjResponsePar.KeyID > 0)
GlobalInfo.response.KeyIDQDOK = ObjResponsePar.KeyID;
}
private void FrmRushAnswer_KeyDown(object sender, KeyEventArgs e)
{
//屏蔽,在快捷键处理。杨斌 2015-05-26
//if (e.KeyCode == Keys.Escape)
//{
// ExitRushAnswer();
//}
}
private void tmrSelect_Tick(object sender, EventArgs e)
{
this.Select();//杨斌 2014-09-24
}
private void FrmRushAnswer_FormClosing(object sender, FormClosingEventArgs e)
{
tmrSelect.Enabled = false;//杨斌 2014-09-24
isRunForm = false;//杨斌 2015-04-29
}
}
}