开发工具:VS2010;.net framework 3.5
程序:恶搞智力测验
功能:用户无法点中自己选中的按钮回答问题
目的:恶搞整人
步骤:
1、打开VS2010
2、新建WinForm项目
3、窗体放一个定时器Timer、一个Lable、2个Button、一个Picture
4、Timer控件Tick事件代码实现获取当前鼠标坐标,鼠标靠近按钮时控制按钮显示位置和按钮文本
5、完成
重点:鼠标相对控件坐标的获取
一、程序运行截图:
二、主要代码:
private bool flag = false;
public Form1()
{
InitializeComponent();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (this.DialogResult != System.Windows.Forms.DialogResult.OK)
MessageBox.Show("哈哈!关闭窗口也改变不了煞笔的事实!", "智力测验",
MessageBoxButtons.OK, MessageBoxIcon.Information);
}
private void timerNo_Tick(object sender, EventArgs e)
{
Point btnNoPoint = this.btnNo.PointToClient(Control.MousePosition);
int p_y = btnNoPoint.Y;
int p_x = btnNoPoint.X;
int y_margin = 35;
int x_margin = 35;
if (flag)
{
y_margin = 0;
x_margin = 0;
}
if (p_y > 0) y_margin += btnNo.Height;
if (p_x > 0) x_margin += btnNo.Width;
if (Math.Abs(p_x)
{
this.timerNo.Enabled = false;
if (flag == false)
{
if (btnNo.Location.Y == 100)
{
for (int y = 110; y >= 20; y--)
{
btnNo.Location = new Point(260, y);
Application.DoEvents();
}
}
else
{
for (int y = 20; y
{
btnNo.Location = new Point(260, y);
Application.DoEvents();
}
flag = true;
}
}
else
{
btnNo.Text = "是的";
btnYes.Text = "不是";
}
this.timerNo.Enabled = true;
}
else
{
if (btnNo.Text == "是的")
{
btnYes.Text = "是的";
btnNo.Text = "不是";
}
}
}
private void btnNo_Click(object sender, EventArgs e)
{
if (MessageBox.Show("你确定是煞笔?", "智力测验",
MessageBoxButtons.OKCancel, MessageBoxIcon.Information) ==
System.Windows.Forms.DialogResult.OK)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
}
private void btnYes_Click(object sender, EventArgs e)
{
if (MessageBox.Show("你确定是煞笔?", "智力测验",
MessageBoxButtons.OKCancel, MessageBoxIcon.Information) ==
System.Windows.Forms.DialogResult.OK)
{
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
}
三、提示:
查看操作实录视频请关注“业余码农说”,查看发布的同名视频即可
领取专属 10元无门槛券
私享最新 技术干货