C#listview显示了多张图片,怎样在另一个窗体picturebox中获取点击的图片
1个回答
展开全部
首先明确 几个点
第一 你所谓的另一个窗体 是另一个 Form类么??
如果不是, 那么 直接用事件 触发函数 刷新 picturebox 并显示响应的图片就好了
如果是另一个Form类, 稍微麻烦一些。第一个麻烦,你的listview所在的Form类 所引用的资源如何传递信息给另一个Form类。 可以通过全局的自定义EventHandle来传递。也可以用其他办法,比如设置个Program静态字段表示当前选择。‘另一个’Form根据这个静态字段定时刷新picturebox。
第二,你所谓的另一个窗体,是不是同一个线程上,如果是,没问题。
如果不是,就是所谓的跨线程调用。这个麻烦就更多一些。可以参考msdn关于跨线程请求。
跨线程了的话,不单单需要自定义EventHandle。还涉及异步问题。
不过话又说回来。什么情况需要两个Form的情况啊???? 另一个窗体你到底指什么呢
如果是想开发个类似AcdSee这种看图工具。也不是2个窗体啊。
第一 你所谓的另一个窗体 是另一个 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环境。。。。。
意义何在??? 作业题????
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询