我正在尝试在列表框或文本框中显示我的应用的结果,但两者都不起作用。我不知道如何拨打textBox1.Text
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//listBox1.Items.Add(printPath());
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
我想打印此方法中的值:
static void showPath(List<PathFinderNode> mPath)
{
TextBox tx = new TextBox();
ListBox ls = new ListBox();
var bn = new ListBox();
string disP = "nnnn";
MessageBox.Show("show path reached"); //method check
try
{
foreach (PathFinderNode node in mPath)
{
if ((node.X - node.PX) > 0) { disP = "Right"; }
if ((node.X - node.PX) < 0) { disP = "Left"; }
if ((node.Y - node.PY) > 0) { disP = "UP"; }
if ((node.Y - node.PY) < 0) { disP = "Down"; }
ls.Items.Add(disP);
tx.Text = disP;
bn.Text = disP;
}
}
catch (FormatException p)
{
Console.WriteLine(p.Message);
}
}
是的,我得到的消息是“显示路径已达到”,所以我知道程序达到了这一点。只是显示器无法正常工作。
答案 0 :(得分:0)
为什么不让方法只返回路径步骤,让调用者决定如何处理它。
static string[] showPath(List<PathFinderNode> mPath)
{
List<string> paths = new List<string>();
string disP = string.Empty;
MessageBox.Show("show path reached"); //method check
try
{
foreach (PathFinderNode node in mPath)
{
if ((node.X - node.PX) > 0) { disP = "Right"; }
if ((node.X - node.PX) < 0) { disP = "Left"; }
if ((node.Y - node.PY) > 0) { disP = "UP"; }
if ((node.Y - node.PY) < 0) { disP = "Down"; }
paths.Add(disP);
}
}
catch (FormatException p)
{
Console.WriteLine(p.Message);
}
return paths.ToArray();
}
然后你就可以这样称呼它:
listBox1.AddRange(showPath(...));