FrmCodeText.cs 2.6 KB
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 CodeSplicing
{
    public partial class FrmCodeText : Form
    {

        public FrmCodeText()
        {
            InitializeComponent();
            CboField.Items.AddRange(Asa.Common.Config.Field.ToArray());
        }

        public int Start { get; private set; }

        public int Len { get; private set; }

        public string Texts { get; private set; }

        public string Field { get; private set; }

        

        public FrmCodeText(string s, string field, int start, int len) : this()
        {
            Texts = s;
            CboField.Text = field;
            Start = start;
            Len = len;

            NudStart.Value = start;
            NudLen.Value = len;
        }

        private void ShowText()
        {
            if (Start > 0)
                lblText1.Text = Texts.Substring(0, Start);
            else
                lblText1.Text = "";

            lblText2.Text = Texts.Substring(Start, Len);

            if (Start + Len < Texts.Length)
                lblText3.Text = Texts.Substring(Start + Len, Texts.Length - Start - Len);
            else
                lblText3.Text = "";
        }

        private void NudStart_ValueChanged(object sender, EventArgs e)
        {

            int n = Convert.ToInt32(NudStart.Value);
            if (n + Len > Texts.Length)
            {
                NudStart.Value--;
            }
            else
            {
                Start = n;
                ShowText();
            }
            
        }

        private void NudLen_ValueChanged(object sender, EventArgs e)
        {
            int n = Convert.ToInt32(NudLen.Value);
            if (Start + n > Texts.Length)
            {
                NudLen.Value--;
            }
            else
            {
                Len = n;
                ShowText();
            }
        }

        private void BtnAll_Click(object sender, EventArgs e)
        {
            //start = 0;
            //len = text.Length;
            NudStart.Value = 0;
            NudLen.Value = Texts.Length;
        }

        private void BtnOK_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.OK;
        }

        private void CboField_SelectedIndexChanged(object sender, EventArgs e)
        {
            Field = CboField.Text;
        }

        private void FrmCodeText_Load(object sender, EventArgs e)
        {
            Asa.Common.Language.SetLanguage(this);
        }
    }
}