当用户点击按钮时,我会弹出一个消息框。当用户单击是时,它运行insert
函数。
我想要的是在messagebox
弹出时添加或开始倒计时,默认yes button
被禁用。在5 second
yes button
之后,成为enable
并准备好按用户点击。
if (MessageBox.Show("log", "test", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
insert();
}
答案 0 :(得分:5)
根据评论中的建议,您需要拥有自己的此功能实现。下面是您需要修改普通表单以使其显示为对话框的部分代码:
将新的Form
添加到您的项目中。打开porperties选项卡。将属性设置为以下 2 。
修改设计器中的表单,将以下属性更改为给定值:
this.AcceptButton = this.btnYes;//To simulate clicking *ENTER* (Yes)
this.CancelButton = this.button2; //to close form on *ESCAPE* button
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
this.MaximizeBox = false;
this.MinimizeBox = false;
//FROM CODEPROJECT ARTICLE LINK
this.ShowInTaskBar = false;
this.StartPosition = CenterScreen;
添加计时器以形成。将其间隔设置为5000(5秒)。编写代码以在Shown
形式的事件上启动计时器:
private void DialogBox_Shown(object sender, EventArgs e)
{
timer1.Start();
}
处理计时器滴答声:
public DialogBox()
{
InitializeComponent();
//bind Handler to tick event. You can double click in
//properrties>events tab in designer
timer1.Tick += Timer1_Tick;
}
private void Timer1_Tick(object sender, EventArgs e)
{
btnYes.Enabled = true;
timer1.Stop();
}
设置是按钮处理程序:
private void btnYes_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Yes;
}
您可以在此处显示此自定义消息框,以检查是否点击了Yes
或No
,如下所示:
var d=new DialogBox();
var result=d.ShowDialog();
if(result==DialogResult.Yes)
//here you go....