从test.cs中更改form1中的picturebox图像

本文关键字:form1 中的 picturebox 图像 test cs | 更新日期: 2023-09-27 18:01:47

我正试图从另一个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:'Users'Axmed'Google Drive'C# Source Codes'inventory Viewer'inventory Viewer'bin'Release'icon'icon_default.png");

但是它不起作用如果我在"form1"

内使用这一行
x.slot_13.Image = Image.FromFile(@"C:'Users'Axmed'Google Drive'C# Source Codes'inventory Viewer'inventory Viewer'bin'Release'icon'icon_default.png");

图片被更改

从test.cs中更改form1中的picturebox图像

您的代码遗漏了很多上下文,所以我将做一些假设。给定一个显示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的事件来实现这一点。为了正确地实现它,您需要显示更多的代码。