スターター: 生成されるエラーは次のとおりです。
宛先配列の長さが不十分です。destIndex と長さ、および配列の下限を確認してください。
コード: C#、ASP.NET
環境: VS 2005
私がやっていることは、BitArray を使用して、TreeView の特定の条件に基づいてビットを反転することです。現在、TreeView をトラバースしています。ノードが子からチェックされている場合は、BitArray のインデックスを反転します。トラバースしている複数の TreeView があるため、複数の BitArray があります。すべての BitArrays に値を入力したら、ビットを整数値 (ある意味でエンコードされたもの) に変換し、int 配列に配置します。最終的な目標は、整数値をデータベースにプッシュすることですが、明らかにそこまで到達することはできません。以下にサンプルコードを示します。
BitArray MTRTECH = new BitArray(8);
BitArray MTRRD = new BitArray(200);
BitArray REVSE = new BitArray(100);
BitArray ETXA = new BitArray(100);
int[] conversion = new int[11];
ParentChildCheck(MTRTECHTreeView, MTRTECH);
MTRTECH.CopyTo(conversion, 7);
ParentChildCheck(MTRRDRTreeView, MTRRD);
MTRRD.CopyTo(conversion, 8); <================ Throws Error Here
ParentChildCheck(REVSECTreeView, REVSE);
REVSE.CopyTo(conversion, 9);
ParentChildCheck(EXTRATreeView, ETXA);
ETXA.CopyTo(conversion, 10);
protected void ParentChildCheck(TreeView parent, BitArray Changes)
{
TreeNode temp = new TreeNode();
for (int index = 0; index < parent.Nodes.Count; index++)
{
temp = parent.Nodes[index];
for (int index2 = 0; index2 < temp.ChildNodes.Count; index2++)
{
ChildCheck(temp.ChildNodes[index2],Changes,index2);
}
}
}
protected void ChildCheck(TreeNode node, BitArray Selection, int value)
{
message2 += node.Text;
Selection.Set(value, true);
counter++;
for (int index = 0; index < node.ChildNodes.Count; index++)
{
value++;
ChildCheck(node.ChildNodes[index],Selection,value);
}
}