我正试图从另一个cs文件中更新"form1"内的图片框图像我的代码在test.cs
slot_13.modifier = public;
在form1里面我也写了这个
CheckForIllegalCrossThreadCalls = false;
test.cs
inventory_Viewer.viewer x = new inventory_Viewer.viewer();
x.slot_13.Image = Image.FromFile(@"C:UsersAxmedGoogle DriveC# Source Codesinventory Viewerinventory ViewerbinReleaseiconicon_default.png");
但是它不起作用如果我在"form1"
内使用这一行x.slot_13.Image = Image.FromFile(@"C:UsersAxmedGoogle DriveC# Source Codesinventory Viewerinventory ViewerbinReleaseiconicon_default.png");
图片被更改
您的代码遗漏了很多上下文,所以我将做一些假设。给定一个显示InventoryViewerForm的MainForm,并且想要更改InventoryViewerForm上的图像,您可以像这样保存对第二个表单的引用:
// Your inventory_Viewer.viewer
public partial class InventoryViewerForm
{
public InventoryViewerForm()
{
}
}
// The form from which to show the viewer.
public partial class MainForm
{
private readonly InventoryViewerForm _inventoryViewerForm;
public MainForm()
{
_inventoryViewerForm = new InventoryViewerForm();
}
private void ShowInventoryViewerButton_Click(object sender, EventArgs e)
{
_inventoryViewerForm.Show();
}
private void ChangeImageButton_Click(object sender, EventArgs e)
{
// Dispose the previously loaded image.
if (_inventoryViewerForm.Image != null)
{
_inventoryViewerForm.Image.Dispose();
}
_inventoryViewerForm.Image = Image.FromFile("NewImage.png");
}
}
但这是一个糟糕的设计。您不希望像这样紧密地耦合窗体,您希望利用WinForms的数据绑定和. net的事件来实现这一点。为了正确地实现它,您需要显示更多的代码。