当前位置:编程学习 > C#/ASP.NET >>

一个奇怪的问题PictureBox

请教!
我在一个对话框里面,放了两个PictureBox,两个响应的内容大体一样,就是对自各单击的
点画X。
两个都让他们响应了各各自的Paint事件,
如下:
private void RefAoiPicBox_Paint(object sender, PaintEventArgs e)
{  
  //在此设置了断点根本没有执行到这里,为什么?
    Point tmpPtimg = new Point(0, 0);
    Point tmpPtwin = new Point(0, 0);
    Graphics tmpGc;
    if (m_bmpRef == null)
        return;
    this.RefAoiPicBox.Image = (Image)m_bmpRef;
    tmpGc = Graphics.FromImage((Bitmap)this.RefAoiPicBox.Image);
    for (int i = 0; i < m_ptsRef.Count; i++)
    {
        tmpPtimg.X = ((Point)m_ptsRef[i]).X;
        tmpPtimg.Y = ((Point)m_ptsRef[i]).Y;
        tmpPtwin.X = this.RefAoiPicBox.Width * (tmpPtimg.X - m_rectRefAoi.Left) / m_rectRefAoi.Width;
        tmpPtwin.Y = this.RefAoiPicBox.Height * (tmpPtimg.Y - m_rectRefAoi.Top) / m_rectRefAoi.Height;
        tmpGc.DrawLine(new Pen(colors[3], 2), new Point(tmpPtwin.X - 3,
tmpPtwin.Y - 3), new Point(tmpPtwin.X + 3, tmpPtwin.Y + 3));
        tmpGc.DrawLine(new Pen(colors[3], 2), new Point(tmpPtwin.X + 3,
tmpPtwin.Y - 3), new Point(tmpPtwin.X - 3, tmpPtwin.Y + 3));
    }
    if (tmpGc != null)
        tmpGc.Dispose();
}

private void DefAoiPicBox_Paint(object sender, PaintEventArgs e)
{                           
    //可是当我把这里内容注释之后,上面的内容就能够执行了。
    Point tmpPtimg1 = new Point(0, 0);
    Point tmpPtwin1 = new Point(0, 0);
    Graphics tmpGc1;
    if (m_bmpDef == null)
        return;
    this.DefAoiPicBox.Image = (Image)m_bmpDef;
    tmpGc1 = Graphics.FromImage((Bitmap)this.DefAoiPicBox.Image);
    for (int i = 0; i < m_ptsDef.Count; i++)
    {
        tmpPtimg1.X = ((Point)m_ptsDef[i]).X;
        tmpPtimg1.Y = ((Point)m_ptsDef[i]).Y;
        tmpPtwin1.X = this.DefAoiPicBox.Width * (tmpPtimg1.X - m_rectDefAoi.Left) / m_rectDefAoi.Width;
        tmpPtwin1.Y = this.DefAoiPicBox.Height * (tmpPtimg1.Y - m_rectDefAoi.Top) / m_rectDefAoi.Height;
        tmpGc1.DrawLine(new Pen(colors[3], 2), new Point(tmpPtwin1.X - 3,
tmpPtwin1.Y - 3), new Point(tmpPtwin1.X + 3, tmpPtwin1.Y + 3));
        tmpGc1.DrawLine(new Pen(colors[3], 2), new Point(tmpPtwin1.X + 3,
tmpPtwin1.Y - 3), new Point(tmpPtwin1.X - 3, tmpPtwin1.Y + 3));
    }
    if (tmpGc1 != null)
        tmpGc1.Dispose();
}


搞不清楚 为什么?
请各位大侠指教!
多谢!
--------------------编程问答-------------------- 说了半天也没见你提出个具体问题,是怎么回事吗? --------------------编程问答-------------------- 请多关注,谢谢! --------------------编程问答-------------------- 不明白你说什么,难道你把两个pic摞起来了?? --------------------编程问答-------------------- 就是两个PictureBox_Paint的问题,
只有一个能够执行,另一个不能执行。。。

然后把下面那段注释掉,上面的就能够执行了。搞不清楚为什么!
而且一般情况都是执行下面的那段! --------------------编程问答--------------------
引用 3 楼 angel6709 的回复:
不明白你说什么,难道你把两个pic摞起来了??

没有,两上Picturebox 是分开的,都放在一个对话框上
--------------------编程问答-------------------- 我做了一个简单的测试的例子,可以的呀,为什么实际的程序里不行呢?有什么可能的原因吗?大家指点一下!
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,