无法通过嵌套类型 来访问外部类型 的非静态成员

时间:2021-01-30 15:43:48
无法通过嵌套类型“supergrid.Form1.FlowerButton”来访问外部类型“supergrid.Form1”的非静态成员





//superGridControl 中行号
        public int row = -1;
/*
FlowerButton 用来动态添加的按钮,
需要实现点击按钮的时候获取到行号,
MessageBox.Show(row.ToString()) 这行报错,
MessageBox.Show("aa");  可以运行,求解
*/
         class FlowerButton : GridButtonXEditControl
        {
            
            public FlowerButton()
            {
                this.Click += this.FlowerButtonClick;
            }
            void FlowerButtonClick(object sender, EventArgs e)
            {
                 MessageBox.Show(row.ToString()) 
                //MessageBox.Show("aa");               
            }
        }


2 个解决方案

#1


你通过EventArgs将row传递过去。(需要继承EventArgs后在你继承的对象中保存这个row属性)

#2


几种方法
在supergrid.Form1中public一个属性,外部可以访问supergrid.Form1.xxx
通过委托(自定义事件)等传递,你去google “c# 窗体间传值”

#1


你通过EventArgs将row传递过去。(需要继承EventArgs后在你继承的对象中保存这个row属性)

#2


几种方法
在supergrid.Form1中public一个属性,外部可以访问supergrid.Form1.xxx
通过委托(自定义事件)等传递,你去google “c# 窗体间传值”