Click事件死循环

Sweet_Time_Rose 2014-05-15 11:20:11
用DX绘了一个三角形,在pictureBox增加Click事件时陷入死循环,关键代码如下
static private float VX0 = -1.0f;
static private float VY0 = -1.0f;
static private float VZ0 = 0.0f;
static private float VX1 = 1.0f;
static private float VY1 = -1.0f;
static private float VZ1 = 0.0f;
static private float VX2 = 0.0f;
static private float VY2 = 2.0f;
static private float VZ2 = 0.0f;
VertexBuffer vertexBuffer = null;
public void OnCreateVertexBuffer(object sender, EventArgs e)
{
VertexBuffer vb = (VertexBuffer)sender;
CustomVertex.PositionColored[] verts = (CustomVertex.PositionColored[])vb.Lock(0, 0);
verts[0].X = VX0; verts[0].Y = VY0; verts[0].Z = VZ0; verts[0].Color = System.Drawing.Color.DarkGoldenrod.ToArgb();
verts[1].X = VX1; verts[1].Y = VY1; verts[1].Z = VZ1; verts[1].Color = System.Drawing.Color.MediumOrchid.ToArgb();
verts[2].X = VX2; verts[2].Y = VY2; verts[2].Z = VZ2; verts[2].Color = System.Drawing.Color.Cornsilk.ToArgb();
vb.Unlock();
}
private void Render()
{
pictureBox.Click += new EventHandler(pictureBox_Click);
}
void pictureBox_Click(object sender, EventArgs e)
{
VX0 -= 1.0f; VY0 -= 1.0f;
VX1 += 1.0f; VY1 -= 1.0f;
VY2 += 1.0f;
this.OnCreateVertexBuffer(vertexBuffer, null);
}


点击pictureBox的时候,VX0等变量会一直改变。我想要的效果就是点击一次,改变一次,求大牛们帮忙看下
...全文
250 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
叫我猫爷_ 2014-05-15
  • 打赏
  • 举报
回复
引用 3 楼 Sweet_Time_Rose 的回复:
引用 1 楼 bwangel 的回复:
虽然看不到你的完整代码,但估计是Render()这个方法反复执行,Click事件被重复绑定的结果
哎,太粗心了,确实是main函数里面用了死循环
这个论坛都是我的号,不信我换个ID重复这句话.
Sweet_Time_Rose 2014-05-15
  • 打赏
  • 举报
回复
引用 1 楼 bwangel 的回复:
虽然看不到你的完整代码,但估计是Render()这个方法反复执行,Click事件被重复绑定的结果
哎,太粗心了,确实是main函数里面用了死循环
  • 打赏
  • 举报
回复
Render()可能吃了炫迈吧 不然怎么停不下来呢
bwangel 2014-05-15
  • 打赏
  • 举报
回复
虽然看不到你的完整代码,但估计是Render()这个方法反复执行,Click事件被重复绑定的结果

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧