我试图创建一个窗体,允许用户以字符Name,Strength和Dexterity的形式将值输入到锯齿状数组中。一旦他们将这些值输入文本框,就必须保存它,以便用户可以查看使用列表框输入的字符的信息
public Form1()
{
InitializeComponent();
String[][] Arr = new String[3][];
Arr[0] = new String[20];
Arr[1] = new String[20];
Arr[2] = new String[20];
}
所以我已经为用户创建了字符串,以输入3个属性的值。现在我不确定在哪里实际添加代码(以及代码是什么)。我应该放一行如Arr [0] = NameTxtbox.Text
答案 0 :(得分:1)
不要使用多个值数组作为单个对象数组的替代。
考虑一个简单的对象:
public class Character
{
public string Name { get; set; }
public string Dexterity { get; set; }
public string Strength { get; set; }
}
现在,如果您希望表单维护Character
个对象的列表,那么在表单中创建一个类级属性:
private List<Character> Characters { get; set; } = new List<Character>();
现在,无论何时从输入中保存字符(例如单击表格中的&#34; save&#34;按钮),只需将其添加到列表中:
Characters.Add(new Character
{
Name = NameTxtbox.Text,
Dexterity = DexterityTxtbox.Text,
Strength = StrengthTxtbox.Text
});
因此,您可以使用简单的有意义对象集合,而不是尝试维护单个值的复杂数组。您可以bind your ListBox
到相同的对象集合。
答案 1 :(得分:0)
正如@David指出,你最好的选择是学习一下winforms。
以下是一些microsofts文档:https://msdn.microsoft.com/en-us/library/system.windows.forms.textbox(v=vs.110).aspx
“文本框”会将事件触发到TextChanged
,您可以“听取”这些事件。要执行您自己的代码:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.textchanged(v=vs.110).aspx
textBox = new TextBox()
textBox.TextChanged += () => {
// your code here.
var input = textBox.Text;
Arr[1] = input.ToCharArray();
}
答案 2 :(得分:0)
在保存按钮处理程序内添加此
这一行:
string Info = textBox1.Text + " - " + textBox2.Text + " - " + textBox3.Text;
将用户输入的所有字符串Concat一个字符串-
作为间距。
这一行
listBox1.Items.Add(Info);
将字符串添加到列表框中。
编辑:
这是将它们存储在数组中的方式。
string[] array = new[]{textBox1.Text , textBox2.Text , textBox3.Text};