我已经踩了一个问题,我花了几个小时试图解决,我的知识非常有限。
我的form1中有一个名为listMachine的listview 我在form1.cs中有一个方法,比如
private void máquinaToolStripMenuItem_Click(object sender, EventArgs e)
{
machinename open = new machinename();
open.Show();
}
machinename.cs是另一种形式,我使用该方法打开我的另一个表单,使用一个名为open的对象。
machinename按钮是一个简单的表单,它只是一个输入接收器,它询问一个名字,我们必须在文本框中键入它,按一个按钮然后它接收输入。
这是按下按钮时运行的代码
public void buttonAceitarnome_Click(object sender, EventArgs e)
{
if (textBoxnomenova.TextLength == 0)
{
toolTipEmptyname.Show("O nome da máquina não pode estar vazio", textBoxnomenova);
}
else
{
Variables.var = textBoxnomenova.Text;
//MessageBox.Show(Variables.var); debug purpose, the messagebox does carry variables.var text
obj.listMachine.Items.Add(Variables.var); //If I change the variables.var to "test" it will NOT add the item.
this.Close();
}
}
另外,我忘了提到我的Variables.cs类,我创建它是因为它是我发现将变量从一个类传递到另一个(machinename.cs到form1.cs)的唯一方法,但是,这些项目仍然是没有添加到列表视图中。 这是我的variables.cs代码
public static class Variables
{
public static string var;
}
我添加到代码中的注释也为您提供了一些额外的调试信息.. 我不想要求在线帮助,但无法自行解决:(
答案 0 :(得分:0)
将点击事件从私人更改为受保护。
protected void máquinaToolStripMenuItem_Click(object sender, EventArgs e)
答案 1 :(得分:0)
如果我是你,我会先删除Variables
课程。
然后,你的第一个表单/类被称为obj.cs
,我是对的吗?或者是form1.cs
?
我看起来像这样:
public partial class obj : Form
{
public static string text; //This is a variable that can be reached from
public obj()
{
InitializeComponent();
}
private void máquinaToolStripMenuItem_Click(object sender, EventArgs e)
{
machinename open = new machinename();
open.ShowDialog(); //I put ShowDialog instead of Show
addItem(); //This method is called when the showed dialog is closed (machinename.cs)
}
private void addItem()
{
listMachine.Items.Add(text);
}
}
和machinename.cs
类是这样的:
public partial class machinename : Form
{
public machinename()
{
InitializeComponent();
}
private void buttonAceitarnome_Click(object sender, EventArgs e) //This one can be private
{
if (textBoxnomenova.TextLength == 0)
{
//Something here
}
else
{
obj.text = textBoxnomenova.Text; //Initializing the public static variable
this.Close(); //Closes the form, next step will be to run the method in obj.cs
}
}
}
如果我理解你的问题,你想通过“machinename.cs”形式的按钮将一个项目添加到名为“listMachine”的ListView中。这段代码就是这样做的。我希望它可以帮助你。