这是我的代码。
1。除了点击存储在数组中的显示名称按钮(输入名称后)后,显示文本框滚动条跳下并且必须将其拉出以查看已输入名。
2。此外,在我继续输入姓名后(在输入少数名字后),我获得了换行符(在显示名称文本框中),并且重复显示输入的名称。它应该在最后输入的名称后显示名称,而不重复先前输入的名称和换行符。
任何想法是什么造成的?
我的代码:
namespace Arrays
{
public partial class frmMain : Form
{
public frmMain()
{
InitializeComponent();
}
//initialize the Array
string[] names = new string[100];
int index = 0;
//Enter Names up to 100 and store them in array
private void btnEnterName_Click(object sender, EventArgs e)
{
if (index < names.Length)
{
names[index++] += txtName.Text;
txtName.Clear();
}
else
{
// array 'full'
}
}
//Display stored Names in Array using foreach loop in multiline textbox
private void btnShowNames_Click(object sender, EventArgs e)
{
txtName.Clear();
foreach (string item in names)
{
txtNames.AppendText(item + Environment.NewLine);
}
}
}
}
答案 0 :(得分:0)
对于滚动条问题,设置Text而不是使用AppendText将解决问题:
//Display stored Names in Array using foreach loop in multiline textbox
private void btnShowNames_Click(object sender, EventArgs e)
{
string allNames = "";
foreach (string item in names)
{
allNames += item + Environment.NewLine;
}
txtNames.Text = allNames;
// or more advanced
//txtNames.Text = string.Join(names, Environment.NewLine);
}
如果您点击按钮而未在其中输入名称,则会发生换行符。在添加文本之前测试文本的存在:
//Enter Names up to 100 and store them in array
private void btnEnterName_Click(object sender, EventArgs e)
{
// remove spaces at start and end
string trimedName = txtName.Trim();
bool nameExist = !string.IsNullOrEmpty(trimedName);
bool notHittingMaxName = index < names.Length;
if (nameExist && notHittingMaxName)
{
names[index++] += trimedName;
txtName.Clear();
}
else
{
// array 'full' or empty name
}
}