フォームウィンドウのサイズを変更しようとしていますが、見つかったすべてのMSDNページでform.widthやform.heightなどを使用するように指示しています。 IntelliSenseポップアップのオプションとして表示されます。Visual C#form1には幅の定義が含まれていません
this.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
}
}
}
私はlooooong時間前にVB6で再生ので、私はどんなのVisual Studio UIのものを行っていないと私はそれがちょうど名前で任意のフォームにアクセスし、それを操作することが可能になるために使用されると確信しています。
更新:コメントに基づいてwidth
をWidth
に変更しましたが、問題は引き続き発生するため、大文字と小文字の区別は問題ではないようです。
更新:今起こっていることが分かります。だから私が本当に知る必要があるのは、起動時にすでに実行されているform1のインスタンスを別のフォームから参照する方法です。
私はform2をインスタンス化して表示します。 Form1を操作するためにform2にボタンを配置したい場合は、変数にインスタンス化していないときにどのように参照するのですか? (プログラム開始時にform1が自動的に実行されるため)
ケースセンテクティブ! – TaW
これは、例えば 'var frmForm1 = new Form1();'のようなWidthプロパティを取得するために 'Form1'のインスタンスを作成する必要があり、' frmForm1.Width'にアクセス可能であるという理由からです。適切。私はキーワードの「this」と「インスタンスのオブジェクト」を作成することをお勧めします – MethodMan
@MethodManああ大丈夫です。しかし、実行時に既に表示されているform1の作成と追加コピーはありませんか?これを最後に追加しようとしましたが、私はmemmory exception faultを受け取ります。 //別のテスト... var frm = new Form1(); frm.Width = 800; frm.ShowDialog(); – CptOZ