将图片框的图像从用户控件更改为带有图像链接的窗体
Change the image of an picture box from an usercontrol to an form with an imagelink
当我更改组合框中的值时,我试图从放置在 form1 中的用户控件中更改 form2 中图片框的图像。我希望图像从图像 link 流式传输,例如“https://i.imgur.com/xxxxxx.png”。
这就是我所做的。
这是带有用户控件的 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();
}
}
}
当我更改组合框中的值时,我试图从放置在 form1 中的用户控件中更改 form2 中图片框的图像。我希望图像从图像 link 流式传输,例如“https://i.imgur.com/xxxxxx.png”。 这就是我所做的。
这是带有用户控件的 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();
}
}
}