public override void OnClick() { m_map = m_hookHelper.FocusMap; // このツールが格納されているForm1を取得 try { // ツールバーのバディからMapControlを取得 IToolbarControl2 tlb = (IToolbarControl2)m_hookHelper.Hook; IMapControl4 mapctrl = (IMapControl4)tlb.Buddy; // AxMapControlが格納されているForm1を取得 IntPtr ptr = (System.IntPtr)mapctrl.hWnd; System.Windows.Forms.Control cntrl = System.Windows.Forms.Control.FromHandle(ptr); frm1 = cntrl.FindForm(); } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } // Form1のコントロールでtxtCenterX, txtCenterY, txtRadiusに値を入れる private void SetControlProps(string sX, string sY, string sRadius) { try { System.Windows.Forms.TextBox txtX = (System.Windows.Forms.TextBox)frm1.Controls.Find("txtCenterX", true)[0]; System.Windows.Forms.TextBox txtY = (System.Windows.Forms.TextBox)frm1.Controls.Find("txtCenterY", true)[0]; System.Windows.Forms.TextBox txtRadius = (System.Windows.Forms.TextBox)frm1.Controls.Find("txtRadius", true)[0]; txtX.Text = sX ; txtY.Text = sY ; txtRadius.Text = sRadius; } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } }
Engine で ITool からフォームを取得する方法
2016/9/1 (木)