我有这个按钮点击事件和一个addConnection函数:
private void button2_Click(object sender, EventArgs e)
{
addConnection(cyclicSelectedIndex[0], cyclicSelectedIndex[1]);
}
private void addConnection(int i, int j)
{
if (connectionStart.Count == 0)
{
connectionStart.Add(i);
connectionEnd.Add(j);
}
for (int f = 0; f < connectionStart.Count; f++)
{
if (connectionStart[f] == i && connectionEnd[f] == j || connectionStart[f] == j && connectionEnd[f] == i)
{
}
else
{
connectionStart.Add(i);
connectionEnd.Add(j);
}
}
}
在单击按钮中,我插入了两个索引的int变量i
和j
。
然后在addConnection函数中,我正在使用另外两个列表。
首先我检查List是否为空== 0然后将两个索引添加到开始列表和结束列表。
然后我检查For循环,如果connectionStart和/或connectEnd列表中已存在两个索引。
如果它们不存在,我将添加它们,这是在ELSE中。
到目前为止的问题是,当我在ELSE区域放置一个断点时,我将两个indees添加到列表中。
第一次向每个列表添加一个索引。但是如果我再用另一个点点击该点并单击按钮,那么我在两个列表中都会看到它在每个列表中添加了8次当前索引。然后我选择另外两个点,现在单击按钮16然后是32。
我不明白为什么。
我想点击我点击的最后两点,当我点击按钮连接它们并调用该功能时。
它将检查列表START和END中是否已存在这两个按钮连接,如果没有将此连接添加到列表中。
因此,在START连接中,我将在索引0中为数字5,在索引0中的END列表中为数字7
然后在START中的索引1中编号为9,在索引1中的END中编号为10
我知道在列表5和7中的索引0是两个必须与一条线连接的点。等等9和10。
两个问题:
确定添加代替=正在运行。但由于某些原因点击了两点后,如果我连续几次点击按钮2,它会将相同的最后两点索引添加到列表START和END。我确信我检查IF是否要检查START和END列表中是否已经存在此点连接,所以不要再添加它们。这是为什么 ?我的
if(connectionStart [f] == i&amp;&amp; connectionEnd [f] == j || connectionStart [f] == j&amp;&amp; connectionEnd [f] == i)不是很好的检查?
现在另一个问题我添加了几个像10的点。然后点击按钮2连接每两个点。我点击一个点然后点击另一个点并将点索引添加到循环List:cyclicSelectedIndex然后在button2中单击我使用addConnection函数获取每次点击的最后两个点的两个索引。但我用断点检查,我看到在列表START和END中有一些一个接一个的点索引。就像在列表START中我在索引4,5,6,7中看到的那样我看到0,0,0,0我不知道hwy它发生了