예제 #1
0
        /* События */

        /// <summary>
        /// Событие выбора элемента списка знаков
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void listSigns_SelectedValueChanged(object sender, EventArgs e)
        {
            try
            {
                int index = ((ListBox)sender).SelectedIndex;

                if (index != -1)
                {
                    ImageWorker IM   = new ImageWorker();
                    road_sign   sign = PE.road_sign.ToArray <road_sign>()[index];

                    pbImage.BackgroundImage = IM.GetImageByRelativePath(sign.img);

                    tbType.Text        = PE.type_road_sign.Where(x => x.code_type_road_sign == sign.code_type_sign).First().name;
                    tbDescription.Text = sign.description;

                    listResolution.Items.Clear();
                    listProhibishin.Items.Clear();

                    foreach (act item in PE.item_list_resolution.Where(x => x.code_road_sign == sign.code_road_sign).Select(x => x.act))
                    {
                        listResolution.Items.Add(item.name);
                    }

                    foreach (act item in PE.item_list_prohibition.Where(x => x.code_road_sign == sign.code_road_sign).Select(x => x.act))
                    {
                        listProhibishin.Items.Add(item.name);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace);
            }
        }
예제 #2
0
        /// <summary>
        /// Добавление знака в контейнер выбранных знаков
        /// </summary>
        /// <param name="sign"></param>
        private void AddToFlowSelectedSigns(road_sign sign)
        {
            try
            {
                foreach (PictureBox item in flowListSelectedSign.Controls)
                {
                    if (item.Tag != null && item.Tag.ToString() == sign.pdd_number)
                    {
                        return;
                    }
                }

                ImageWorker IM = new ImageWorker();

                PictureBox pb = new PictureBox();
                pb.BackgroundImage       = IM.GetImageByRelativePath(sign.img);
                pb.Width                 = 64;
                pb.Height                = 64;
                pb.Tag                   = sign.pdd_number;
                pb.BackgroundImageLayout = ImageLayout.Stretch;

                flowListSelectedSign.Controls.Add(pb);
                SelectedSign.Add(sign);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace);
            }
        }
예제 #3
0
        public SignPanel(road_sign sign, Bitmap image, MainWindow parent)
        {
            InitializeComponent();

            this.Sign         = sign;
            this.ParentWindow = parent;

            this.lbNumber.Text      = sign.pdd_number;
            this.tnName.Text        = sign.name;
            this.cbSelected.Checked = false;

            ImageWorker IW = new ImageWorker();

            pbImage.BackgroundImage = IW.GetImageByRelativePath(sign.img);
        }
예제 #4
0
        /// <summary>
        /// Заполнение панели знаками одного типа
        /// </summary>
        /// <param name="newFlow"></param>
        /// <param name="type"></param>
        private void SetSignInFlow(FlowLayoutPanel newFlow, long type)
        {
            try
            {
                List <road_sign> list = CreateGroupPanel(type);
                ImageWorker      IM   = new ImageWorker();

                foreach (road_sign item in list)
                {
                    newFlow.Controls.Add(new SignPanel(item, IM.GetImageByRelativePath(item.img), this));
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.StackTrace);
            }
        }
예제 #5
0
        private void AddNewSign()
        {
            road_sign newSign = new road_sign();

            newSign.name           = tbName.Text;
            newSign.pdd_number     = tbNumber.Text;
            newSign.code_type_sign = PE.type_road_sign.ToArray <type_road_sign>()[cbType.SelectedIndex].code_type_road_sign;
            newSign.description    = tbDescription.Text;

            ImageWorker IM = new ImageWorker();

            IM.CopyImageByName(tbPath.Text, newSign.pdd_number.Replace('.', '_'));
            newSign.img = newSign.pdd_number.Replace('.', '_') + ".png";

            PE.road_sign.Add(newSign);
            PE.SaveChanges();

            foreach (string item in listResolution.Items)
            {
                act _act = PE.act.Where(x => x.name == item).First();

                item_list_resolution iR = new item_list_resolution();
                iR.code_road_sign = newSign.code_road_sign;
                iR.code_act       = _act.code_act;

                PE.item_list_resolution.Add(iR);
                PE.SaveChanges();
            }

            foreach (string item in listProhibishin.Items)
            {
                act _act = PE.act.Where(x => x.name == item).First();

                item_list_prohibition iP = new item_list_prohibition();
                iP.code_road_sign = newSign.code_road_sign;
                iP.code_act       = _act.code_act;

                PE.item_list_prohibition.Add(iP);
                PE.SaveChanges();
            }

            this.Close();
        }
예제 #6
0
        private void btnOpenImage_Click(object sender, EventArgs e)
        {
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.InitialDirectory = Application.StartupPath + @"img\\";
            openFileDialog.Filter           = "PNG files (*.png)|*.png|JPG files (*.jpg)|*.jpg";
            openFileDialog.FilterIndex      = 1;
            openFileDialog.RestoreDirectory = true;

            if (openFileDialog.ShowDialog() == DialogResult.OK)
            {
                string filename = openFileDialog.FileName;

                if (filename != "")
                {
                    tbPath.Text = filename;
                    ImageWorker IM = new ImageWorker();
                    pbImage.BackgroundImage = IM.GetImageByAbsolutePath(filename);
                }
            }
        }