UcKeypadPara.cs 12.6 KB
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Microsoft.Office.Interop.PowerPoint;
using GeneralLib;

namespace SunVoteARSPPT
{


    public partial class UcKeypadPara : UserControl, IPanel
    {

        public TagSet TagSet { get; set; }

        public UcKeypadPara()
        {
            InitializeComponent();

            try
            {
                FrmSystemSet.LanguageSetEvent += new FrmSystemSet.LanguageSetEventHander(FrmSystemSet_LanguageSetEvent);
                FrmSystemSet.GlobalSetChangeEvent += new FrmSystemSet.GlobalSetChangeEventHander(FrmSystemSet_GlobalSetChangeEvent);
                //GlobalInfo.baseConnect.ActiveSlideWindowEvent += new ActiveSlideWindowEventHander(baseConnect_ActiveSlideWindowEvent);
                //赵丽 2012-07-13 类型改变刷新面板
                APanel.OptionModeChangeEvent += new OptionModeChangeEventHander(APanel_OptionModeChangeEvent);
                gbxKeypadSet.Resize += gbxKeypadSet_Resize;
                //设置控件大小
                this.Height = gbxKeypadSet.Bottom;
                //GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
                lblSubmitMode.Visible = false;
                cboSubmitMode.Visible = false;

                //lblModifyMode.Top = lblSubmitMode.Top;
                //cboModifyMode.Top = cboSubmitMode.Top;
                //lblOptionMode.Top = lblModifyMode.Bottom + 10;
                //cboOptionMode.Top = cboModifyMode.Bottom + 10;
                //gbxKeypadSet.Height = gbxKeypadSet.Height - cboSubmitMode.Height;

                //this.Height = gbxKeypadSet.Height;

                ReSetSize(false, true, true, true);//杨斌 2016-02-15
            }
            catch (Exception ex)
            {
                SystemLog.WriterLog(ex);
            }
        }

        void gbxKeypadSet_Resize(object sender, EventArgs e)
        {
            int pos = gbxKeypadSet.ClientSize.Width / 2;
            int w = pos - 3;
            cboSubmitMode.Left = pos;
            cboSubmitMode.Width = w;

            cboModifyMode.Left = pos;
            cboModifyMode.Width = w;

            cboOptionMode.Left = pos;
            cboOptionMode.Width = w;

            cboSecrecyMode.Left = pos;
            cboSecrecyMode.Width = w;

            cboCheckUID.Left = pos;
            cboCheckUID.Width = w;
        }

        /// <summary>
        /// 自动设置高度
        /// 杨斌 2015-02-27
        /// </summary>
        public void ReSetSize(bool showSubmitMode, bool showModifyMode, bool showOptionMode, bool showSecrecyMode)
        {
            //是否隐藏功能,反馈前检查UID            
            bool showCheckUID = false;//计算值引起其他面板控件异常。杨斌 2015-11-24//GlobalInfo.sysConfig.ResponseCheckUID;

            lblSubmitMode.Visible = cboSubmitMode.Visible = showSubmitMode;
            lblModifyMode.Visible = cboModifyMode.Visible = showModifyMode;
            lblOptionMode.Visible = cboOptionMode.Visible = showOptionMode;
            lblCheckUID.Visible = cboCheckUID.Visible = showCheckUID;
            lblSecrecyMode.Visible = cboSecrecyMode.Visible = showSecrecyMode;//杨斌 2016-02-15

            Dictionary<Control, bool> dicV = new Dictionary<Control, bool>();
            Dictionary<Control, Control> dic = new Dictionary<Control, Control>();
            dicV.Add(cboSubmitMode, showSubmitMode);
            dicV.Add(cboModifyMode, showModifyMode);
            dicV.Add(cboOptionMode, showOptionMode);
            dicV.Add(cboSecrecyMode, showSecrecyMode);//杨斌 2016-02-15
            dicV.Add(cboCheckUID, showCheckUID);

            dic.Add(cboSubmitMode, lblSubmitMode);
            dic.Add(cboModifyMode, lblModifyMode);
            dic.Add(cboOptionMode, lblOptionMode);
            dic.Add(cboSecrecyMode, lblSecrecyMode);//杨斌 2016-02-15
            dic.Add(cboCheckUID, lblCheckUID);

            int step = 4;
            Control c = null;
            Control c1 = null;
            foreach (var v in dic)
            {
                if (c1 == null)
                    c1 = v.Key;
                if (dicV[v.Key])
                {
                    if (c != null)
                        v.Key.Top = c.Bottom + 6;
                    else
                        v.Key.Top = c1.Top;

                    if (v.Value != null)
                        v.Value.Top = v.Key.Top + step;

                    c = v.Key;
                }
            }

            if (c != null)
            {
                c.Parent.Height = c.Bottom + 10;
                c.Parent.Parent.Height = c.Parent.Height;
            }
            //gbxKeypadSet.Height = c.Bottom + 10;
            //this.Height = gbxKeypadSet.Height;
        }

        void FrmSystemSet_GlobalSetChangeEvent()
        {
            try
            {
                if (gbxKeypadSet.Enabled)
                {
                    int index = Convert.ToInt32(TagSet.GetValue(TagKey.KeypadPara_ModifyMode).Value);
                    cboModifyMode.SelectedIndex = index;
                    index = Convert.ToInt32(TagSet.GetValue(TagKey.KeypadPara_OptionMode).Value);
                    cboOptionMode.SelectedIndex = index;
                }
            }
            catch { }
        }

        /// <summary>
        /// 添加标志 赵丽 2012-07-13 类型改变刷新面板
        /// </summary>
        void APanel_OptionModeChangeEvent(int mode)
        {
            cboOptionMode.SelectedIndex = mode;
        }

        void baseConnect_ActiveSlideWindowEvent()
        {
            try
            {
                Globals.SunVoteARSAddIn.Application.ActiveWindow.Activate();
            }
            catch
            {
            }
        }

        /// <summary>
        /// 是否正在改变语言
        /// 杨斌 2014-04-30
        /// </summary>
        private bool IsChangeLanguage = false;

        /// <summary>
        /// 语言设置
        /// </summary>
        void FrmSystemSet_LanguageSetEvent()
        {
            IsChangeLanguage = true;
            GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            if (TagSet == null) return;
            cboSubmitMode.SelectedIndex = TagSet.GetValue(TagKey.KeypadPara_SubmitMode).ToInt;
            //cboModifyMode.SelectedIndex = (TagSet.GetValue(TagKey.KeypadPara_ModifyMode).ToInt == 0 ? 1 : 0);改变语言后,参数面板键盘参数设置-修改模式也跟着改变了
            cboModifyMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_ModifyMode, 0).ToInt;//杨斌 2012-06-25
            //杨斌 2016-02-15
            cboSecrecyMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_SecrecyMode, 0).ToInt;
            LoadOptionMode();//杨斌 2012-06-25
            IsChangeLanguage = false;
        }

        /// <summary>
        /// 加载选项格式
        /// 创建:杨斌 2012-06-25
        /// </summary>
        private void LoadOptionMode()
        {
            int lastSelect = cboOptionMode.SelectedIndex;
            cboOptionMode.Items.Clear();
            cboOptionMode.Items.Add("1234");
            cboOptionMode.Items.Add("ABCD");
            if (lastSelect < 0) lastSelect = 0;
            //默认ABCD。杨斌 2015-01-15
            if (TagSet != null)//杨斌 2016-06-07
            {
                if (GlobalInfo.OEMLogo == OEMLogos.oemiPericles)//杨斌 2019-06-06
                    cboOptionMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_OptionMode, 0).ToInt;
                else
                    cboOptionMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_OptionMode, 1).ToInt;
            }
        }

        private void UcKeypadPara_Load(object sender, EventArgs e)
        {
            if (GlobalInfo.SysLanguage == null) return;
            GlobalInfo.SysLanguage.SetLanguage(this.Name, this);
            LoadOptionMode();//杨斌 2012-06-25

            //设置默认值
            //if (cboSubmitMode.Items.Count > 0)
            //    cboSubmitMode.SelectedIndex = 0;
            //if (cboModifyMode.Items.Count > 0)
            //    cboModifyMode.SelectedIndex = 0;
        }

        /// <summary>
        /// 加载参数面板数据
        /// 修改:杨斌 2012-06-26
        /// </summary>
        public void LoadData()
        {
            if (TagSet == null) return;
            //cboSubmitMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_SubmitMode, GlobalInfo.baseConnect.CommitMode).ToInt;
            cboSubmitMode.SelectedIndex = 0;//GlobalInfo.baseConnect.CommitMode;//杨斌 2016-12-13
            int defModifyMode = cboModifyMode.SelectedIndex;
            var iniSet = INIControl.GetInstances(GlobalInfo.SYSTEM_CONFIG_PATH);//杨斌 2019-06-12
            defModifyMode = iniSet.ReadInt("KeypadSet", "ModifyMode", 0);//杨斌 2019-06-12
            if (defModifyMode < 0) defModifyMode = 0;
            cboModifyMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_ModifyMode, defModifyMode).ToInt;//杨斌 2019-06-12
            int defOptionMode = cboOptionMode.SelectedIndex;
            defOptionMode = iniSet.ReadInt("KeypadSet", "OptionMode", 0);//杨斌 2019-06-12
            if (defOptionMode < 0) defOptionMode = 0;
            //默认ABCD,但若是排序题格式不可设默认为数字。2015-06-17
            if (cboOptionMode.Visible)
            {
                if (GlobalInfo.OEMLogo == OEMLogos.oemiPericles)//杨斌 2019-06-06
                    cboOptionMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_OptionMode, 0).ToInt;
                else
                    cboOptionMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_OptionMode, defOptionMode).ToInt;//杨斌 2019-06-12
            }
            else
            {
                if (TagSet.GetValue(TagKey.KeypadPara_OptionMode).ToInt == 1)
                {
                    bool bVal = TagSet.ReadOnlyPPT;
                    TagSet.ReadOnlyPPT = false;
                    TagSet.SetValue(TagKey.KeypadPara_OptionMode, 0);
                    TagSet.ReadOnlyPPT = bVal;
                }
                cboOptionMode.SelectedIndex = TagSet.GetValue(TagKey.KeypadPara_OptionMode).ToInt;
            }
            //杨斌 2015-02-28
            cboCheckUID.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_CheckUID, 0).ToInt;
            //杨斌 2016-02-15            
            cboSecrecyMode.SelectedIndex = TagSet.LoadValue(TagKey.KeypadPara_SecrecyMode, 0).ToInt;

        }

        private void cboSubmitMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TagSet == null) return;
            TagSet.SetValue(TagKey.KeypadPara_SubmitMode, cboSubmitMode.SelectedIndex);
        }

        private void cboModifyMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TagSet == null) return;
            TagSet.SetValue(TagKey.KeypadPara_ModifyMode, cboModifyMode.SelectedIndex);
        }

        //杨斌 2012-06-25
        private void cboOptionMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TagSet == null) return;
            TagSet.SetValue(TagKey.KeypadPara_OptionMode, cboOptionMode.SelectedIndex);
            try
            {
                if (TagSet.ReadOnlyPPT) return;
                if (Globals.SunVoteARSAddIn.PPTEdit.SlideEdit == null) return;
                Shape sha = PPTOper.GetOptionTextLinkShape(Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
                bool bABCD = (cboOptionMode.SelectedIndex == 1);
                if (!IsChangeLanguage)//杨斌 2014-04-30
                    PPTOper.SetShapeOptionFormat(sha, bABCD);
                if (!TagSet.ReadOnlyPPT)
                    Globals.SunVoteARSAddIn.PPTEdit.RefreshLabelEdit(DataLabelType.ANSWER);//杨斌 2012-07-02

                //保存当前图表的位置
                PPTOper.SaveChartPosition(Globals.SunVoteARSAddIn.PPTEdit.SlideEdit, TagSet);
                Globals.SunVoteARSAddIn.PPTEdit.InitChart(true, Globals.SunVoteARSAddIn.PPTEdit.SlideEdit);
            }
            catch (Exception ex)
            {
                SystemLog.WriterLog(ex, false);
            }
        }
        //杨斌 2015-02-28
        private void cboCheckUID_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TagSet == null) return;
            TagSet.SetValue(TagKey.KeypadPara_CheckUID, cboCheckUID.SelectedIndex);
        }

        //杨斌 2016-02-15
        private void cboSecrecyMode_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (TagSet == null) return;
            TagSet.SetValue(TagKey.KeypadPara_SecrecyMode, cboSecrecyMode.SelectedIndex);
        }
    }
}