Visual c#form1不包含宽度的定义

Visual c#form1不包含宽度的定义,c#,winforms,visual-studio-2013,C#,Winforms,Visual Studio 2013,我正在尝试调整窗体窗口的大小,我找到的所有MSDN页面都告诉我只使用form.width或form.height等,但Visual studio没有在IntelliSense弹出窗口中显示这一选项 如果我使用这个.width,它会弹出,但是如果我想在form1中单击一个按钮来调整form2的大小呢?如何按表单名称更改属性 我错过了什么 using System; using System.Collections.Generic; using System.ComponentModel; usin

我正在尝试调整窗体窗口的大小,我找到的所有MSDN页面都告诉我只使用form.width或form.height等,但Visual studio没有在IntelliSense弹出窗口中显示这一选项

如果我使用这个.width,它会弹出,但是如果我想在form1中单击一个按钮来调整form2的大小呢?如何按表单名称更改属性

我错过了什么

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

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

        private void button1_Click(object sender, EventArgs e)
        {
            Form1.Width = 800; //ERROR: does not contain a definition for width
            this.Width = 800; //this is allowed though
            Form2.Width = 800; //ERROR: does not contain a definition for width

        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //thought mayeb I need a size 1st so tried this
            Form1.Size = new System.Drawing.Size.(1029, 640); //ERROR:  An object reference is required for ... 'System.Windows.Forms.Form.Size.get'    

            //dunno why this doesnt work its apparently correct acording to MSDN
            //https://msdn.microsoft.com/en-us/library/aa984427(v=vs.71).aspx
            //https://msdn.microsoft.com/en-us/library/ms229606(v=vs.110).aspx
        }
    }
}
自从很久以前我玩VB6以来,我还没有做过任何VisualStudioUI的东西,我确信过去可以通过名称访问任何表单并对其进行操作

更新:我根据评论将
width
更改为
width
,问题仍然存在,因此区分大小写似乎不是问题

更新:我知道现在发生了什么。所以我真正需要知道的是,我如何引用在启动时已在单独表单中执行的form1实例


所以我实例化form2并展示它。现在,如果我想在form2上有一个按钮来操作form1,当我从未将其实例化为变量时,如何引用它?(由于form1在程序启动时自动运行)

C#区分大小写<代码>宽度应为
宽度
。此外,正如您在代码注释中包含的后一个错误所示,这些(Form1和可能的Form2)是
class
标识符,而不是实例。您只能通过类名引用类的
静态
元素。

正如Uuerdo所说,
width
应该是
width
。另外,(正如他所说)
Form1
Form2
是类名称,不能用它们来影响C#中表单的值。相反,您希望影响当前实例上的那些值,该实例在C中由
this
表示#

this.Size=新系统.Drawing.Size.(1029640)


如果我没记错的话,在VB中,你可以像现在一样通过它们的类名修改表单,但在C#

中不是这样的,试试下面的方法,你就会发现它是可行的

private void button1_Click(object sender, EventArgs e)
{
    this.Width = 800; //this is in reference to Form1
    var frm2 = new Form2();
    frm2.Width = 800;
    frm2.ShowDialog(); 
    frm2.Dispose();
}

这是因为您需要创建
Form1
的一个实例,以获取Width属性,例如
var frmForm1=new Form1()然后
frmForm1.Width
是可访问的,其他方面
这个。Width
是合适的。我建议大家阅读关键字
this
以及创建对象的
实例
@MethodMan ah好的。但是,这不会创建一个在运行时已经显示的表单1的附加副本吗?我尝试将此添加到末尾,但我遇到了memmory异常错误//另一个测试。。。var frm=新的Form1();frm.宽度=800;frm.ShowDialog();我认为您需要阅读更多内容,并了解创建对象实例时会发生什么。使用我在答案中输入的代码可以正常工作,无需任何额外的内存即可解决您对内存异常的担忧。请阅读Dispose方法以了解那里发生了什么。。谢谢