我的程序编译,对我而言是有意义的。
我想知道如何获得' name'列在我的列表框中。
我尝试使用一组类,以便添加推销员。每次添加一个人时都会创建一个新类。
这样,名称就是调用该类中所有数据的一种方式。
当我执行该程序时,所有内容看起来都像它正在做的事情,但它只是列出了' form1'在列表框中按下列表名称按钮
这就是我的意思:
我哪里错了?
SalesmanClass
namespace WindowsFormsApplication1
{
class SalesmanClass
{
private string name;
public string cNum;
public string Email;
public string address;
public string gArea;
public int tSales;
public string Name
{
get
{
return name;
}
set
{
name = value;
}
}
表单1
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
Form2 w2;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (w2 == null)
{
w2 = new Form2();
w2.Show();
}
}
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
Object names;
names = Name;
listBox1.Items.Add(Name);
}
}
}
表格2
//form2
namespace WindowsFormsApplication1
public partial class Form2 : Form
{
SalesmanClass[] salesman = new SalesmanClass[] { };
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text.Trim().Length != 0)
{
for (int i = 0; i > salesman.Length; i++)
{
if (salesman[i] == null)
{
salesman[i].Name = textBox1.Text;
break;
}
}
this.Close();
}
else
{
MessageBox.Show("Please Input a Name");
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
}
}
答案 0 :(得分:1)
在这种方法中:
private void button2_Click(object sender, EventArgs e)
{
Object names;
names = Name; // <--- Using this.Name, i.e. Form.Name, NOT SalesmanClass.Name
listBox1.Items.Add(Name);
}
您不小心使用了表单本身的Name
属性(当然是“form1”)。
此时您需要拥有SalesmanClass
个对象,并使用的Name
属性。
您目前没有Form1中的推销员列表,因此您需要添加一个并使用它。
此外,如果您有SalesmanClass
个对象的列表或数组,则应该从它们创建List<string>
并使用它来初始化列表框,例如:
SalesmanClass[] salesmen = new SalesmanClass[] {};
// ...
List<string> names = new List<string>();
foreach (var salesman in salesmen)
names.Add(salesman.Name);
listBox1.Items.AddRange(names);
你也可以使用Linq来做到这一点,但是我不想通过将它引入混音中来迷惑你!
答案 1 :(得分:1)
在你的button2_Click中,你有:
names = Name;
这个名字属于什么?我怀疑它属于Form1,这就是为什么它一直在显示“form1”。如果是这种情况,您只需要获取SalesmanClass对象并从中获取名称。