C#listview显示了多张图片,怎样在另一个窗体picturebox中获取点击的图片

 我来答
sniperfivd24c6
2016-04-03 · TA获得超过247个赞
知道小有建树答主
回答量:273
采纳率:100%
帮助的人:210万
展开全部
首先明确 几个点
第一 你所谓的另一个窗体 是另一个 Form类么??
如果不是, 那么 直接用事件 触发函数 刷新 picturebox 并显示响应的图片就好了

如果是另一个Form类, 稍微麻烦一些。第一个麻烦,你的listview所在的Form类 所引用的资源如何传递信息给另一个Form类。 可以通过全局的自定义EventHandle来传递。也可以用其他办法,比如设置个Program静态字段表示当前选择。‘另一个’Form根据这个静态字段定时刷新picturebox。

第二,你所谓的另一个窗体,是不是同一个线程上,如果是,没问题。
如果不是,就是所谓的跨线程调用。这个麻烦就更多一些。可以参考msdn关于跨线程请求。
跨线程了的话,不单单需要自定义EventHandle。还涉及异步问题。

不过话又说回来。什么情况需要两个Form的情况啊???? 另一个窗体你到底指什么呢

如果是想开发个类似AcdSee这种看图工具。也不是2个窗体啊。
追问
我要做一个自动售卖机系统,主页面显示多张商品图片,用了listview和imagelist,当点击某张图片时,跳转到另一个页面,picturebox要显示点击的图片,
追答

就是弹出新 的“窗口” 显示这张图是吧。

这个简单了

你需要这样做,新建个Form2 注意不要在programe 。

然后 实体化这个 Form2.设定好 新的显示图片的内容。

然后再 Run就行了

比如 你点击 listview后,事件触发函数

private void select_one_pict(object sender, EventArgs e){
    Form topopnewwindow = new Form2();
    topopnewwindow.pictureBox1.Image = Image.FromFile(@"yourchosenImagePath.png" );
    topopnewwindow.Width = 150;
    ///还可以设定窗口大小,外观什么的。看你需要。都是字段值,根据需要就行了
    
    Application.Run(new Form2());
    ///最后运行下,可以根据需要,取消显示Form1或者设定为disable最小化什么的。
    ///关闭显示后别忘记 结束这个窗体线程。然后恢复Form1的Enable
}

其实我比较好奇,什么自动售卖机会用到.net环境。。。。。

意义何在??? 作业题????

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式