Wer*_*ver 0 c# visual-studio winforms
这是我对同一个问题的第二个问题,但是这个例子让我更容易理解你的答案.
我得到"没有重载方法'form2'需要'0'参数"
form1上的按钮将您带到form2,并将文本框的值带过.Form2显示标签中文本框的值.然后我在form2上有一个后退按钮,可以将你带回到form1.
我第二次使用下面的代码时得到错误:
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
this.Hide();
}
Run Code Online (Sandbox Code Playgroud)
以下是此示例的所有代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(textBox1.Text);
frm2.Show();
this.Hide();
}
}
public partial class Form2 : Form
{
public string txtbox;
public Form2(string txtbox)
{
InitializeComponent();
this.txtbox = txtbox;
}
private void Form2_Load(object sender, EventArgs e)
{
label1.Text = txtbox;
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2();
frm2.Show();
this.Hide();
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释这个以及如何做到这一点.我还是菜鸟所以请详细说明.
您没有默认构造函数Form2
,您唯一可用的构造函数Form2
需要一个字符串参数.
您可以在表单中定义无参数构造函数.
public partial class Form2 : Form
{
public string txtbox;
public Form2() // a new parameterless constructor
{
InitializeComponent();
}
Run Code Online (Sandbox Code Playgroud)
另一个选项是utalize现有的构造函数,并在按钮单击事件中传递一些字符串值.
Form2 frm2 = new Form2("somestring");// can be empty string as well
Run Code Online (Sandbox Code Playgroud)
对 - 你已经用参数声明了一个构造函数:
public Form2(string txtbox)
Run Code Online (Sandbox Code Playgroud)
......并且没有无参数构造函数.请注意,如果您没有显式声明任何构造函数,则编译器仅为您提供无参数构造函数.
但是你试图在没有参数的情况下调用构造函数:
Form2 frm2 = new Form2();
Run Code Online (Sandbox Code Playgroud)
你想要那样做什么?你基本上已经说过,为了构造一个实例Form2
,你必须为txtbox
参数提供一个值......但你不是这样做的.
归档时间: |
|
查看次数: |
1370 次 |
最近记录: |