c# - 将图片框的图像从用户控件更改为带有图像链接的表单
问题描述
当我更改组合框中的值时,我试图从放置在 form1 中的用户控件更改 form2 中图片框的图像。我希望图像从像“https://i.imgur.com/xxxxxx.png”这样的图像链接流式传输。这就是我所做的。
这是带有 usercontrol 的 form1。
private void combobox_TextChanged(object sender, EventArgs e)
{
string newText = combobox.Text;
Form2 crsF = new Form2();
if (check_Enabled.Checked)
{
switch (newText)
{
case "White":
crsF.UpdatePictureBox("https://i.imgur.com/HDuKdEh.png");
break;
case "Red":
crsF.UpdatePictureBox("https://i.imgur.com/HDuKdEh.png");
break;
}
}
}
这是我想改变形象的form2
public void UpdatePictureBox(string streamLink)
{
var request = WebRequest.Create(streamLink);
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
{
pictureBox1.Image = Bitmap.FromStream(stream);
this.Refresh();
}
}
我用这段代码开始form2。
Form2 csrF;
private void combobox_CheckedChanged(object sender, EventArgs e)
{
crsF = new Form2();
if (combobox.Checked)
{
crsF = new CrosshairForm();
crsF.Show();
}
else if (!combobox.Checked)
{
Form2 obj = (Form2)Application.OpenForms["Form2"];
obj.Close();
}
}
我尝试了很多不同的事情,我喜欢自己解决问题,我真的花了一些时间在这个功能上,但我无法做到正确,感谢所有帮助。
解决方案
这是解决方案!
表格 1
using System;
using System.Windows.Forms;
namespace WinFormsApp2
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private string Link;
private void combobox_SelectedIndexChanged(object sender, EventArgs e)
{
string newText = combobox.Text;
switch (newText)
{
case "White":
Link = "https://i.pinimg.com/564x/fc/80/7c/fc807ccc8b44a604c276614ed29f5067.jpg";
break;
case "Red":
Link = "https://i.imgur.com/HDuKdEh.png";
break;
}
}
private void check_Enabled_CheckedChanged(object sender, EventArgs e)
{
if(!string.IsNullOrEmpty(Link))
{
Form2 crsF = new Form2();
if (check_Enabled.Checked)
{
crsF.UpdatePictureBox(Link);
crsF.Show();
}
else if (!check_Enabled.Checked)
{
Form2 obj = (Form2)Application.OpenForms["Form2"];
if (obj != null)
{
obj.Close();
}
}
}
}
}
}
表格 2
using System.Windows.Forms;
namespace WinFormsApp2
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
public void UpdatePictureBox(string streamLink)
{
System.Net.WebRequest request = System.Net.WebRequest.Create(streamLink);
System.Net.WebResponse response = request.GetResponse();
System.IO.Stream stream = response.GetResponseStream();
pictureBox1.Image = System.Drawing.Bitmap.FromStream(stream);
Refresh();
}
}
}
推荐阅读
- php - Foreach 循环在 php 中未按预期工作
- firebase - 'map['projectId'] != null': 'projectId' cannot be null ,使用firebase core初始化app时出现错误
- excel - Excel If或具有多个条件的语句不起作用
- python - 如何重塑系列以便我可以使用 Scitkit-learn Standard Scaler 功能?
- javascript - 单击按钮 JS 时从输入中求和值。请帮忙!最后期限)
- java - 在某些值之后近似 pi 中断
- java - 如何格式化具有超过 1 个索引为 0 Java 的随机数的数组
- .net - NuGet 依赖文件在面向 .NET Core+ 时复制到构建输出目录中,但未针对 .NET Framework 复制
- javascript - 为什么我在 React 中的可拖动组件在光标 onmousemove 之前移动?
- python - 确定 CO2 传感器(Rpi4、ExplorIR-W CO2 传感器)通过 UART 通信使用哪个 tty 终端