public void SetFormMode(string title, int colCount, int rowCount, string tableName = "", string colName = "", string rowName = "",
                         int colWidth   = 48, int rowHeadersWidth = 64,
                         bool onlyTable = true, bool nocolNum     = false, bool noRowNum = false, object initData = null)
 {
     hideSingle           = onlyTable;
     this.colCount        = colCount;
     this.rowCount        = rowCount;
     this.title           = title;
     this.tableName       = tableName;
     this.colName         = colName;
     this.rowName         = rowName;
     this.nocolNum        = nocolNum;
     this.noRowNum        = noRowNum;
     this.colWidth        = colWidth;
     this.rowHeadersWidth = rowHeadersWidth;
     this.inputFormType   = inputFormType;
     this.inputData       = initData as RiverSimulationProfile.SideFlowObject;
     this.p             = RiverSimulationProfile.profile;
     tabControl.Enabled = true;
     CreateData(inputData.flowData);
 }
        //private bool onlySelectMode = false;
        //private RiverSimulationProfile.SideFlowType[] typeIndex = null;
        public void SetFormMode(string title, RiverSimulationProfile.SideFlowObject[] outObjs, string inName, RiverSimulationProfile.SideFlowObject[] inObjs, string outName)
        {
            this.title = title;
            //從RiverSimulationProfile複製一份資料來編輯
            if (outObjs != null && outObjs.Length > 0)
            {
                sideOutObjects = new RiverSimulationProfile.SideFlowObject[outObjs.Length];
                for (int i = 0; i < outObjs.Length; ++i)
                {
                    if (outObjs[i] != null)
                    {
                        sideOutObjects[i] = outObjs[i].Clone();
                    }
                    else
                    {
                        sideOutObjects[i] = new RiverSimulationProfile.SideFlowObject(RiverSimulationProfile.SideFlowType.SideOutFlow);
                    }
                }
            }

            if (inObjs != null && inObjs.Length > 0)
            {
                sideInObjects = new RiverSimulationProfile.SideFlowObject[inObjs.Length];
                for (int i = 0; i < inObjs.Length; ++i)
                {
                    if (inObjs[i] != null)
                    {
                        sideInObjects[i] = inObjs[i].Clone();
                    }
                    else
                    {
                        sideInObjects[i] = new RiverSimulationProfile.SideFlowObject(RiverSimulationProfile.SideFlowType.SideInFlow);
                    }
                }
            }
        }