c#Mainform不';不接受变量
我是c#的初学者,我对MainForm从字符串或其他东西获取值有问题 例如:c#Mainform不';不接受变量,c#,C#,我是c#的初学者,我对MainForm从字符串或其他东西获取值有问题 例如: public partial class MainForm : Form { public string Spieler { get; set;} void MainFormLoad(object sender, EventArgs e) { LogTextBox.AppendText ("\r\nHello "+Spieler); // works nicely }
public partial class MainForm : Form
{
public string Spieler { get; set;}
void MainFormLoad(object sender, EventArgs e)
{
LogTextBox.AppendText ("\r\nHello "+Spieler); // works nicely
}
public MainForm()
{
InitializeComponent();
LogTextBox.AppendText ("\r\nHello "+Spieler); // don't because nothing in ()
}
如果我尝试将public MainForm()
也设置为public MainForm(objectsender,EventArgs e)
我会得到一个错误
(c#-错误cs1729不包含构造函数)
即使使用public MainForm(string-Spieler)
我也会遇到同样的错误
编辑:
我以如下方式使用值启动主窗体:
LogDatei = evelogdir+"\\"+((KeyValuePair<string, string>)CharacterSelectBox.SelectedItem).Key;
MainForm ueber = new MainForm();
ueber.SpielerDatei = LogDatei;
ueber.Spieler = ((KeyValuePair<string, string>)CharacterSelectBox.SelectedItem).Value;
ueber.Show();
this.Hide();
LogDatei=evelogdir+“\\”+((KeyValuePair)CharacterSelectBox.SelectedItem.Key;
MainForm ueber=新的MainForm();
ueber.SPIELRDATEI=LogDatei;
ueber.Spiler=((KeyValuePair)CharacterSelectBox.SelectedItem).Value;
ueber.Show();
this.Hide();
您应该能够使用默认构造函数MainForm()完成此操作。我不知道你为什么会出错——我自己试过了,效果很好
另请参见我的示例,该示例将字符串值传递给构造函数
public partial class MainForm : Form
{
public string Spieler { get; set; }
public MainForm()
{
InitializeComponent();
Console.WriteLine("\r\nHello " + Spieler); // I do not get an error here
}
public MainForm(string s)
{
InitializeComponent();
this.Spieler = s;
Console.WriteLine("\r\nHi " + Spieler);
}
private void Form1_Load(object sender, EventArgs e)
{
Console.WriteLine("\r\nHello " + Spieler); // works nicely
}
}
请解释更多,你得到的错误是什么,预期的输出!你能解释一下你想完成什么吗?根据表单初始化的工作方式,
MainForm()
中的空Spieler
变量是“正确”行为;我们需要知道您正试图做什么来帮助您实现目标。首先,请确保您显示的代码与您正在运行的代码完全相同。然后,请显示创建新的MainForm
MainFormLoad
的代码是一个事件处理程序,MainForm()
是类构造函数。事件附加到控件,这就是为什么要将sender
对象和EventArgs
传递给处理程序,因为每当发生相应的事件时都会调用此特殊方法。实例化对象(在该点创建构造函数)不是附加到控件的事件,因此您不应该将这些参数传递给它,这就是为什么它会给您错误的原因。@Sach实际上您可以将对象和EventArgs作为构造函数的参数。这毫无意义,但我认为这里的问题是OP如何实例化表单。