FrmLabel.cs 7.7 KB
using Microsoft.VisualBasic;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace PrintLabel
{
    public partial class FrmLabel : Form
    {
        private bool change = false;
        private bool isLabel = false;

        public FrmLabel()
        {
            InitializeComponent();
        }

        private void LabelPrint_FieldSelected(PointF location, SizeF size, Model.LabelFieldType type)
        {
            change = true;
            NumX.Enabled = true;
            NumY.Enabled = true;
            NumW.Value = Convert.ToDecimal(size.Width);
            NumH.Value = Convert.ToDecimal(size.Height);
            NumX.Value = Convert.ToDecimal(location.X);
            NumY.Value = Convert.ToDecimal(location.Y);
            CboFieldType.Enabled = true;
            CboFieldType.Text = type.ToString();
            change = false;
            isLabel = false;
        }

        private void LabelPrint_FieldFormat(string s)
        {
            change = true;
            TxtFormatText.Text = s;
            change = false;
        }

        private void LabelPrint_LabelSelected(SizeF size)
        {
            change = true;
            NumW.Value = Convert.ToDecimal(size.Width);
            NumH.Value = Convert.ToDecimal(size.Height);
            NumX.Value = 0;
            NumY.Value = 0;
            NumX.Enabled = false;
            NumY.Enabled = false;
            TxtFormatText.Text = "";
            CboFieldType.SelectedIndex = -1;
            CboFieldType.Enabled = false;
            change = false;
            isLabel = true;
        }

        private void FrmLabel_Load(object sender, EventArgs e)
        {
            Common.LabelPrint.FieldFormat += LabelPrint_FieldFormat;
            Common.LabelPrint.FieldSelected += LabelPrint_FieldSelected;
            Common.LabelPrint.LabelSelected += LabelPrint_LabelSelected;

            Common.LabelPrint.LabelIndex = -1;
            LstLabelName.Items.AddRange(Common.LabelPrint.GetName());
            Common.LabelPrint.EditControl(pictureBox1);
            CboFieldType.Items.AddRange(Common.LabelPrint.FieldType);
           
        }

        private void FrmLabel_FormClosing(object sender, FormClosingEventArgs e)
        {
            Common.LabelPrint.FieldFormat -= LabelPrint_FieldFormat;
            Common.LabelPrint.FieldSelected -= LabelPrint_FieldSelected;
            Common.LabelPrint.LabelSelected -= LabelPrint_LabelSelected;
            Common.LabelPrint.EditControl(null);
            Common.LabelPrint.LabelIndex = -1;
        }

        private void LstLabelName_SelectedIndexChanged(object sender, EventArgs e)
        {
            Common.LabelPrint.LabelIndex = LstLabelName.SelectedIndex;
            if (LstLabelName.SelectedIndex == -1) return;

            NumW.Value = Convert.ToDecimal(Common.Label[Common.LabelPrint.LabelIndex].Size_mm.Width);
            NumH.Value = Convert.ToDecimal(Common.Label[Common.LabelPrint.LabelIndex].Size_mm.Height);
            NumX.Value = 0;
            NumY.Value = 0;
            NumX.Enabled = false;
            NumY.Enabled = false;
            CboFieldType.Enabled = false;
        }

        private void BtnLabelNew_Click(object sender, EventArgs e)
        {
            string name = Interaction.InputBox("标签名称:", "新建", "");
            if (string.IsNullOrWhiteSpace(name)) return;
            Common.LabelPrint.LabelNew(name);
            LstLabelName.Items.Add(name);
            LstLabelName.SelectedIndex = LstLabelName.Items.Count - 1;

        }

        private void BtnLabelDel_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            DialogResult dr = MessageBox.Show("确定要删除 " + LstLabelName.Text + " 吗?", "删除", MessageBoxButtons.YesNo);
            if (dr == DialogResult.No) return;
            Common.LabelPrint.LabelDel();
            LstLabelName.Items.RemoveAt(LstLabelName.SelectedIndex);
            if (LstLabelName.Items.Count > 0)
                LstLabelName.SelectedIndex = 0;
        }

        private void BtnRename_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            string name = Interaction.InputBox("标签名称:", "重命名", LstLabelName.Text);
            if (string.IsNullOrWhiteSpace(name)) return;
            Common.LabelPrint.LabelRename(name);
            LstLabelName.Items[LstLabelName.SelectedIndex] = name;
        }

        private void BtnPrintTest_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            Common.LabelPrint.PrintTest();
        }

        private void BtnSave_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            Common.LabelPrint.Save();
            MessageBox.Show("保存成功。", "保存", MessageBoxButtons.OK);
        }

        private void BtnFieldAdd_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            Common.LabelPrint.FieldAdd();
        }

        private void BtnFieldDel_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            Common.LabelPrint.FieldDel();
        }

        private void BtnFieldFont_Click(object sender, EventArgs e)
        {
            if (LstLabelName.SelectedIndex == -1) return;
            Common.LabelPrint.SetFieldFont();
        }

        private void CboFieldType_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (change) return;
            Common.LabelPrint.SetFieldType(CboFieldType.SelectedIndex);
        }

        private void NumX_ValueChanged(object sender, EventArgs e)
        {
            if (change) return;
            if (isLabel)
                Common.LabelPrint.SetLabelSize(Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
            else
                Common.LabelPrint.SetFieldSize(Convert.ToSingle(NumX.Value), Convert.ToSingle(NumY.Value), Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
        }

        private void NumY_ValueChanged(object sender, EventArgs e)
        {
            if (change) return;
            if (isLabel)
                Common.LabelPrint.SetLabelSize(Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
            else
                Common.LabelPrint.SetFieldSize(Convert.ToSingle(NumX.Value), Convert.ToSingle(NumY.Value), Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
        }

        private void NumW_ValueChanged(object sender, EventArgs e)
        {
            if (change) return;
            if (isLabel)
                Common.LabelPrint.SetLabelSize(Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
            else
                Common.LabelPrint.SetFieldSize(Convert.ToSingle(NumX.Value), Convert.ToSingle(NumY.Value), Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
        }

        private void NumH_ValueChanged(object sender, EventArgs e)
        {
            if (change) return;
            if (isLabel)
                Common.LabelPrint.SetLabelSize(Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
            else
                Common.LabelPrint.SetFieldSize(Convert.ToSingle(NumX.Value), Convert.ToSingle(NumY.Value), Convert.ToSingle(NumW.Value), Convert.ToSingle(NumH.Value));
        }

        private void TxtFormatText_TextChanged(object sender, EventArgs e)
        {
            if (change) return;
            Common.LabelPrint.SetFieldFormat(TxtFormatText.Text);
        }


    }
}