/// <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);
        }
예제 #2
0
        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;
            }
        }