當我更改組合框中的值時,我試圖從放置在 form1 中的用戶控制元件更改 form2 中圖片框的影像。我希望影像從這樣的影像鏈接“https://i.imgur.com/xxxxxx.png”流式傳輸。這就是我所做的。
這是表單 1,其中放置了用戶控制元件。
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();
}
}
我嘗試了很多不同的事情,我喜歡自己解決問題,因為我真的花了一些時間在這個功能上,但我無法做到正確,感謝所有幫助。
uj5u.com熱心網友回復:
這是解決方案!
表格 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();
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/344731.html
