窗体之间传值

传值可在副窗口cs中定义副窗口的Tag属性,结合主窗口cs中的:副窗口类名.ActiveForm.Tag属性//进行传递。

同时须结合主窗口中定义的副窗口的FormClosing方法。

有时候FormClosing方法结束后,窗体并没有关闭,不知为何。但是在线程结束后会关闭。

 

private void 显示标注ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            //没有图层时,报提示框
            if (axMapControl1.LayerCount <= 0)
            {
                MessageBox.Show("当前无图层,无法显示标注");
                return;
            }

            if (i3 % 2 == 0)
            {
                ((IGeoFeatureLayer)axMapControl1.get_Layer(0)).DisplayAnnotation = false;
                i3++;
                this.显示标注ToolStripMenuItem.Text = "显示标注";
                axMapControl1.Refresh();
                return;
            }

            GetLabelFields pGetLabelFields = new GetLabelFields(axMapControl1);
            pGetLabelFields.Show();
            pGetLabelFields.FormClosing += new FormClosingEventHandler(pGetLabelFields_FormClosing);

            
        }

        void pGetLabelFields_FormClosing(object sender, FormClosingEventArgs e)
        {
            ILayer pLayer = (IGeoFeatureLayer)axMapControl1.get_Layer(0);
            string filename = null;
            filename = (string)(GetLabelFields.ActiveForm.Tag);
            AddAnnotate.ToAddAnnotate(pLayer, filename);
            axMapControl1.Refresh();
            i3++;
            this.显示标注ToolStripMenuItem.Text = "还原";
        }

 

private void btnOK_Click(object sender, EventArgs e)
        {
                 string filename = null;
            foreach (GroupBox gbxLabelField in this.Controls.OfType<GroupBox>())
            {
                foreach (RadioButton radiobutton in gbxLabelField.Controls.OfType<RadioButton>())
                {
                    if (radiobutton.Checked == true)
                    {
                        filename = radiobutton.Text;
                    }
                }
            }
            this.Tag =(object)filename;
            this.Close();
        }

 
  
 

 

GetLabelFields类的代码没有传上来,实际上就是一个动态获得图层字段并且展示出来,前面带有radio的一个窗口,让用户选择一个字段。

转载于:https://www.cnblogs.com/xianerwonder/p/4296103.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值