コード例 #1
0
        /// <summary>
        /// 计算结果返回事件
        /// </summary>
        /// <param name="status">状态</param>
        /// <param name="message">信息</param>
        /// <param name="percent">百分比</param>
        /// <param name="value">具体数据数组</param>
        private void ResCalcReturn_Event(EnumResCalcStatus status, string message, double percent, double[] value)
        {
            if (status == EnumResCalcStatus.Done)
            {
                this.Invoke(new EventHandler(delegate
                {
                    int len    = value.Length;
                    string log = string.Format("{0}个电阻并联最佳方案:{1}", len, ResValueFormat(value[0]));
                    for (int i = 1; i < len; i++)
                    {
                        log += @" // " + ResValueFormat(value[i]);
                    }
                    log += string.Format(" = {0:#.###}", ResValueFormat(ResCalc.CalcParallel(value)));
                    txtOutput.AppendText(log + "\r\n");
                    if (percent >= 100)
                    {
                        txtOutput.AppendText(message);
                    }
                }));
            }
            else if (status == EnumResCalcStatus.Error)
            {
                this.Invoke(new EventHandler(delegate
                {
                    txtOutput.AppendText(message);
                }));
            }

            this.Invoke(new EventHandler(delegate
            {
                progressBarResCalc.Value = Convert.ToInt32(percent) % (progressBarResCalc.Maximum + 1);
            }));
        }