/// <summary> /// Converts std::vector to managed array /// </summary> /// <returns></returns> public KeyLine[][] ToArray() { var size1 = GetSize1(); if (size1 == 0) { return(Array.Empty <KeyLine[]>()); } var size2 = GetSize2(); var ret = new KeyLine[size1][]; for (var i = 0; i < size1; i++) { ret[i] = new KeyLine[size2[i]]; } using var retPtr = new ArrayAddress2 <KeyLine>(ret); NativeMethods.vector_vector_KeyLine_copy(ptr, retPtr.GetPointer()); GC.KeepAlive(this); return(ret); }
private void TreeView1_AfterSelect(object sender, TreeViewEventArgs e) { switch (e.Node.Name) { //////////////ENCRYPT//////////////// case "EncBec": LineH.Hide(); KeyLine.Hide(); userCaeKey.Hide(); label1.Hide(); button1.Text = "Зашифровать"; hidHelp.Text = "1-1"; break; case "EncVernam": LineH.Show(); KeyLine.Show(); KeyLine.ReadOnly = true; button1.Text = "Зашифровать"; hidHelp.Text = "1-2"; break; case "EncCaesar": LineH.Hide(); KeyLine.Hide(); userCaeKey.Show(); label1.Show(); button1.Text = "Зашифровать"; hidHelp.Text = "1-4"; break; //////////////DECRYPT/////////////// case "DecBec": LineH.Hide(); KeyLine.Hide(); userCaeKey.Hide(); label1.Hide(); button1.Text = "Расшифровать"; hidHelp.Text = "2-1"; break; case "DecVernam": LineH.Show(); KeyLine.Show(); KeyLine.ReadOnly = false; button1.Text = "Расшифровать"; hidHelp.Text = "2-2"; break; case "DecCaesar": LineH.Hide(); KeyLine.Hide(); userCaeKey.Show(); label1.Show(); button1.Text = "Расшифровать"; hidHelp.Text = "2-5"; break; default: progOutput.Text = "Пожалуйста, выберите один из способов зашифровки или расшифровки."; break; } }