C# 用C语言编程添加picturebox#

C# 用C语言编程添加picturebox#,c#,winforms,picturebox,C#,Winforms,Picturebox,好的,我正在测试向我的winform应用程序添加一个picturebox。我终于在这里问了,因为当我查看如何做这件事时,我没有看到任何与我正在做的事情不同的东西。代码如下: namespace AddPanel { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender,

好的,我正在测试向我的winform应用程序添加一个picturebox。我终于在这里问了,因为当我查看如何做这件事时,我没有看到任何与我正在做的事情不同的东西。代码如下:

namespace AddPanel
{
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        PictureBox pictureBox1 = new PictureBox();
        pictureBox1.ImageLocation = @"C:\Users\xoswaldr\Desktop\OrangeLogo.jpg";
        pictureBox1.Location = new System.Drawing.Point(20, 40);
        pictureBox1.Name = "pictureBox1";
        pictureBox1.Size = new System.Drawing.Size(100, 50);
        pictureBox1.BackColor = Color.Black;
        this.Controls.Add(pictureBox1);

    }
}
}
这就是全部代码,因为我只是尝试为我正在处理的其他东西添加picturebox。我想做的是,当我运行程序时,它会将picturebox放入表单中,但这不会发生。表格是空白的

-----编辑------------

以下是Form1.Designer.cs代码

namespace AddPanel
{
partial class Form1
{
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    #region Windows Form Designer generated code

    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
        this.SuspendLayout();
        // 
        // Form1
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(690, 381);
        this.Name = "Form1";
        this.Text = "Form1";
        this.ResumeLayout(false);

    }

    #endregion

}
}
名称空间添加面板
{
部分类Form1
{
/// 
///必需的设计器变量。
/// 
private System.ComponentModel.IContainer components=null;
/// 
///清理所有正在使用的资源。
/// 
///如果应释放托管资源,则为true;否则为false。
受保护的覆盖无效处置(布尔处置)
{
if(处理和(组件!=null))
{
组件。Dispose();
}
基地。处置(处置);
}
#区域Windows窗体设计器生成的代码
/// 
///设计器支持所需的方法-不修改
///此方法的内容与代码编辑器一起使用。
/// 
私有void InitializeComponent()
{
这个.SuspendLayout();
// 
//表格1
// 
此.AutoScaleDimensions=新系统.Drawing.SizeF(6F,13F);
this.AutoScaleMode=System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize=新系统图尺寸(690381);
this.Name=“Form1”;
this.Text=“Form1”;
此选项为.resume布局(false);
}
#端区
}
}
这是Program.cs代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;

namespace AddPanel
{
static class Program
{
    /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}
}
使用系统;
使用System.Collections.Generic;
使用System.Linq;
使用System.Windows.Forms;
名称空间添加面板
{
静态类程序
{
/// 
///应用程序的主要入口点。
/// 
[状态线程]
静态void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(新Form1());
}
}
}

设计器中是否有阻止它的内容或我没有添加的内容?

由于代码看起来正确,是否可能有另一个控件覆盖图片框

试着把它放在前面:

private void Form1_Load(object sender, EventArgs e)
{
    var pictureBox1 = new PictureBox
    {
        BackColor = Color.Black,
        ImageLocation = @"C:\Users\xoswaldr\Desktop\OrangeLogo.jpg",
        Location = new Point(20, 40),
        Name = "pictureBox1",
        Size = new Size(100, 50)
    };

    this.Controls.Add(pictureBox1);

    pictureBox1.BringToFront();
}

图片可能无法完全显示,只需将SizeMode设置为重试:

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom

你的程序能访问那个位置吗?对我来说似乎很好。即使我选择了一个不存在的文件,我仍然会看到一个黑色的图片框(带有一个白色的小框和一个红色的x)。不知道为什么它对OP不起作用。发布的代码不是问题-对我来说也很好。form1不是你的启动对象,你有其他表单吗?你的Programs.cs文件中有什么?或者,您可能有另一个控件阻止了仅在设计器模式下可见的图片框(Form1.designer.cs将显示添加控件)。OrangeLogo.jpg文件与表单的颜色背景不一致?如果是这样,并且图像太大,无法容纳图片框,则可能看起来没有图片框,因为您只看到图像文件左上角的背景。如果您也将此设置为代码呢<代码>pictureBox1.SizeMode=PictureBoxSizeMode.StretchImage如果OP试图将PictureBox添加到面板或其他类型的容器中,这也可能是他们问题的一部分,因为在本例中,主窗体似乎是父窗体。它不在我发布的代码中,因为我将其取出,但我在试图找出错误并尝试时看到了这一点。它不起作用。我想知道问题是否出在我的工作计算机上,但我以前在这台计算机上运行过没有问题的其他项目。出于某种原因,如果我将代码放入一个函数中,然后调用该函数,它就会工作。如果我把它放在Form1_Load函数中,它就不起作用了。添加
SizeMode=PictureBoxSizeMode.Zoom
,然后再试一次。