我想使用form2
上的按钮调整form1
上的按钮大小。
这是我的代码,它给了我错误:
public void button7_Click(object sender, EventArgs e)
{
Form2 f2 = new Form2();
int x = Convert.ToInt32(textBox7.Text);
int y = Convert.ToInt32(textBox8.Text);
f2.button8.Size = new System.Drawing.Size(x, y);
}
Form2.button8.Size
出错。我将button8
公开,因此可以访问..
但它仍然给我错误“Form2.button8由于其保护级别而无法访问” ..
这是我在form2的button8
public void button8_Click(object sender,EventArgs e) { }
我该如何解决这个问题?
答案 0 :(得分:4)
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
Form2 f2 = new Form2();
public Form1()
{
InitializeComponent();
f2.Show();
}
private void button1_Click(object sender, EventArgs e)
{
f2.button1.Size = new Size(int.Parse(textBox1.Text), int.Parse(textBox2.Text));
}
}
}
我在form2.designer.cs内部创建了button1。
namespace WindowsFormsApplication2
{
partial class Form2
{
/// <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.button1 = new System.Windows.Forms.Button();
this.SuspendLayout();
//
// button1
//
this.button1.Location = new System.Drawing.Point(95, 89);
this.button1.Name = "button1";
this.button1.Size = new System.Drawing.Size(75, 23);
this.button1.TabIndex = 0;
this.button1.Text = "buttonForm2";
this.button1.UseVisualStyleBackColor = true;
//
// Form2
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(284, 262);
this.Controls.Add(this.button1);
this.Name = "Form2";
this.Text = "Form2";
this.ResumeLayout(false);
}
#endregion
//This is where you change from private to internal
internal System.Windows.Forms.Button button1;
}
}