C#winform当picturebox的image变化的时候或者说捕捉到时候,触发的事件要怎么写呢?

因为我是用相机按一下会在picturebox上显示图片,我想要图片显示之后触发我写的另一个事件
请问要如何做到呢?

pictureBox1_Paint

pictureBox的 LoadCompleted事件

没有提供这个事件。
不过有3个思路可以解决这个问题
1.既然是你代码控制image变化的,那你直接去调用,而不必触发什么事件。毕竟image属性变化和iamge绘制完毕是两回事
2.自己继承picturebox,然后override image属性,给它加个事件
3.放弃Image,改用backgroundimage,这个有事件

海康威视有个回调方法 MV_CC_RegisterImageCallBack_NET 调取图像后发生,

static void CallbackEx(IntPtr pData, ref MyCamera.MV_FRAME_OUT_INFO_EX pFrameInfo, IntPtr pUser)
{ Console.WriteLine("FrameNum:" + pFrameInfo.nFrameNum + ",Width:" + pFrameInfo.nWidth + ",Height:" + pFrameInfo.nHeight);
}

    static void Main(string[] args)
    {
        uint nTLayerType = MyCamera.MV_GIGE_DEVICE | MyCamera.MV_USB_DEVICE;
        MyCamera.MV_CC_DEVICE_INFO_LIST stDevList = new MyCamera.MV_CC_DEVICE_INFO_LIST();
        int nRet = MyCamera.MV_CC_EnumDevices_NET(nTLayerType, ref stDevList);
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Enum device failed:{0:x8}", nRet);
            return;
        }
        Console.WriteLine("The number of devices found: " + Convert.ToString(stDevList.nDeviceNum));
        if (0 == stDevList.nDeviceNum)
        {
            return;
        }
        MyCamera.MV_CC_DEVICE_INFO stDevInfo;
        //设备信息结构体指针 转 设备信息结构体
          stDevInfo = (MyCamera.MV_CC_DEVICE_INFO)Marshal.PtrToStructure(stDevList.pDeviceInfo[0], typeof(MyCamera.MV_CC_DEVICE_INFO));
        MyCamera device = new MyCamera();


        //创建设备
          nRet = device.MV_CC_CreateDevice_NET(ref stDevInfo);
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Create device failed:{0:x8}", nRet);
            return;
        }
        //打开设备
          nRet = device.MV_CC_OpenDevice_NET(MyCamera.MV_ACCESS_Exclusive,0);
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Open device failed:{0:x8}", nRet);
            return;
        }
        MyCamera.cbOutputExdelegate ImageCallback;
        ImageCallback = new MyCamera.cbOutputExdelegate(CallbackEx);
        nRet = device.MV_CC_RegisterImageCallBackEx_NET(ImageCallback, IntPtr.Zero);
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Register ImageCallBack failed{0:x8}", nRet);
            return;
        }
        //开启抓图
          nRet = device.MV_CC_StartGrabbing_NET();
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Start grabbing failed:{0:x8}", nRet);
            return;
        }
        Thread.Sleep(10000);
        //...其他处理
          //停止抓图
          nRet = device.MV_CC_StopGrabbing_NET();
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Stop grabbing failed{0:x8}", nRet);
            return;
        }
        //关闭设备
          nRet = device.MV_CC_CloseDevice_NET();
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Close device failed{0:x8}", nRet);
            return;
        }

         //销毁句柄,释放资源
          nRet = device.MV_CC_DestroyDevice_NET();
        if (MyCamera.MV_OK != nRet)
        {
            Console.WriteLine("Destroy device failed:{0:x8}", nRet);
        }
    }