public MeshViewFrm(Constants.FemElementShapeDV elemShapeDv, int elemOrder, FemPostProLogic postPro) { InitializeComponent(); // データを受け取る ElemShapeDv = elemShapeDv; ElemOrder = elemOrder; PostPro = postPro; //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(panelMesh, true, null); // メッシュ形状ラベル string shapeStr = ElemShapeDv == Constants.FemElementShapeDV.QuadType2? "四角形" : "三角形"; labelElemShape.Text = string.Format("{0}次{1}要素", ElemOrder, shapeStr); labelMeshInfo.Text = string.Format("節点数: {0} 要素数: {1}", PostPro.NodeCnt, PostPro.ElementCnt); }
/// <summary> /// 初期化処理 /// </summary> private void init() { CadModeRadioButtons = new RadioButton[] { radioBtnNone, radioBtnArea, radioBtnMediaFill, radioBtnPort, radioBtnErase, radioBtnIncidentPort, radioBtnPortNumbering }; // Cadモードをラジオボタンに紐づける CadLogic.CadModeType[] cadModeTypeForRadioButtons = new CadLogic.CadModeType[] { CadLogic.CadModeType.None, CadLogic.CadModeType.Area, CadLogic.CadModeType.MediaFill, 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]; } MediaRadioButtons = new RadioButton[] { radioBtnMedia0, // 導体 radioBtnMedia1, // 真空 radioBtnMedia2, // 誘電体1 radioBtnMedia3 // 誘電体2 }; EpsTextBoxes = new TextBox[] { textBoxEps0, // 導体 textBoxEps1, // 真空 textBoxEps2, // 誘電体1 textBoxEps3 // 誘電体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); Solver = new FemSolver(); PostPro = new FemPostProLogic(); // アプリケーションの終了イベントハンドラを設定する AppDomain.CurrentDomain.ProcessExit += (sender, e) => { Console.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); // ダブルバッファを有効にする //SimpleOpenGlControlの場合は不要 //p.SetValue(CadPanel, true, null); p.SetValue(FValuePanel, true, null); // フォームのタイトルを退避 TitleBaseName = this.Text + " " + MyUtilLib.MyUtil.getAppVersion(); // ファイル名付きフォームタイトルを設定 setFrmTitle(); // GUI初期化 resetGUI(); }