/// <summary> /// 初期化処理 /// </summary> private void init() { CadModeRadioButtons = new RadioButton[] { radioBtnNone, radioBtnLocation, radioBtnArea, radioBtnPort, radioBtnErase, radioBtnIncidentPort, radioBtnPortNumbering }; // Cadモードをラジオボタンに紐づける CadLogic.CadModeType[] cadModeTypeForRadioButtons = new CadLogic.CadModeType[] { CadLogic.CadModeType.None, CadLogic.CadModeType.Location, CadLogic.CadModeType.Area, CadLogic.CadModeType.Port, CadLogic.CadModeType.Erase, CadLogic.CadModeType.IncidentPort, CadLogic.CadModeType.PortNumbering }; System.Diagnostics.Debug.Assert(CadModeRadioButtons.Length == cadModeTypeForRadioButtons.Length); for (int i = 0; i < CadModeRadioButtons.Length; i++) { CadModeRadioButtons[i].Tag = cadModeTypeForRadioButtons[i]; } // エリア選択描画モードタイプコンボボックスのItemにCadモードを紐づける CadModeTypeStruct[] cadModeTypeStructsForImgCBoxCadModeArea = new CadModeTypeStruct[] { new CadModeTypeStruct("自由描画", CadLogic.CadModeType.AreaFH), new CadModeTypeStruct("長方形描画", CadLogic.CadModeType.Area), new CadModeTypeStruct("直線描画", CadLogic.CadModeType.AreaLine), new CadModeTypeStruct("楕円描画", CadLogic.CadModeType.AreaEllipse) }; // コンボボックスのアイテムをクリア imgcbxCadModeArea.Items.Clear(); foreach (CadModeTypeStruct cadModeTypeStruct in cadModeTypeStructsForImgCBoxCadModeArea) { // コンボボックスにアイテムを追加 imgcbxCadModeArea.Items.Add(cadModeTypeStruct); foreach (CadLogic.CadModeType defCadMode in cadModeTypeForRadioButtons) { if (defCadMode == cadModeTypeStruct.CadMode) { //この時点ではCadLogicがないのでイベントハンドラの実行を抑制する imgcbxCadModeArea.SelectedIndexChanged -= imgcbxCadModeArea_SelectedIndexChanged; // 選択する imgcbxCadModeArea.SelectedItem = cadModeTypeStruct; // イベントハンドラを再設定 imgcbxCadModeArea.SelectedIndexChanged += imgcbxCadModeArea_SelectedIndexChanged; } } } imgcbxCadModeArea.Visible = false; // 消しゴム描画モードタイプコンボボックスのItemにCadモードを紐づける CadModeTypeStruct[] cadModeTypeStructsForImgCBoxCadModeErase = new CadModeTypeStruct[] { new CadModeTypeStruct("自由消去", CadLogic.CadModeType.EraseFH), new CadModeTypeStruct("長方形消去", CadLogic.CadModeType.Erase), new CadModeTypeStruct("直線消去", CadLogic.CadModeType.EraseLine) }; // コンボボックスのアイテムをクリア imgcbxCadModeErase.Items.Clear(); foreach (CadModeTypeStruct cadModeTypeStruct in cadModeTypeStructsForImgCBoxCadModeErase) { // コンボボックスにアイテムを追加 imgcbxCadModeErase.Items.Add(cadModeTypeStruct); foreach (CadLogic.CadModeType defCadMode in cadModeTypeForRadioButtons) { if (defCadMode == cadModeTypeStruct.CadMode) { //この時点ではCadLogicがないのでイベントハンドラの実行を抑制する imgcbxCadModeErase.SelectedIndexChanged -= imgcbxCadModeErase_SelectedIndexChanged; // 選択する imgcbxCadModeErase.SelectedItem = cadModeTypeStruct; // イベントハンドラを再設定 imgcbxCadModeErase.SelectedIndexChanged += imgcbxCadModeErase_SelectedIndexChanged; } } } imgcbxCadModeErase.Visible = false; MediaRadioButtons = new RadioButton[] { radioBtnMedia0, // 真空 radioBtnMedia1, // 誘電体1 radioBtnMedia2 // 誘電体2 }; EpsTextBoxes = new TextBox[] { textBoxEps0, // 真空 textBoxEps1, // 誘電体1 textBoxEps2 // 誘電体2 }; System.Diagnostics.Debug.Assert(MediaRadioButtons.Length == Constants.MaxMediaCount); System.Diagnostics.Debug.Assert(EpsTextBoxes.Length == Constants.MaxMediaCount); panelMedia.Visible = false; btnLoadCancel.Visible = false; CadLgc = new CadLogic(CadPanel); CadLgc.Change += new CadLogic.ChangeDeleagte(CadLgc_Change); Solver = new FemSolver(); PostPro = new FemPostProLogic(); //TEST 4画面表示 FValuePanelIndex = FValuePanelFieldDV_ValueDVPairList.Length; //0; // 等高線図パネルインデックス変更時の処理 changeFValuePanelIndexProc(false); // アプリケーションの終了イベントハンドラを設定する AppDomain.CurrentDomain.ProcessExit += (sender, e) => { System.Diagnostics.Debug.WriteLine("Process exiting"); //System.Diagnostics.Debug.WriteLine("Process exiting"); // フォームの破棄処理を呼び出す this.Dispose(); }; // パネルサイズを記憶する savePanelSize(); //this.DoubleBuffered = true; // ダブルバッファ制御用のプロパティを強制的に取得する System.Reflection.PropertyInfo p; p = typeof(System.Windows.Forms.Control).GetProperty( "DoubleBuffered", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance); // ダブルバッファを有効にする p.SetValue(CadPanel, true, null); p.SetValue(FValuePanel, true, null); // フォームのタイトルを退避 TitleBaseName = this.Text + " " + MyUtilLib.MyUtil.getAppVersion(); // ファイル名付きフォームタイトルを設定 setFrmTitle(); // GUI初期化 resetGUI(); }