LUANET实现DataGridView 类似于TextBoxChange事件

DataGridView Cell没有提供现成的类似于TextBoxChange事件。如需实现此功能,可以用如下方法:

private void Form6_Load(object sender, EventArgs e)

        {

            dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler(dataGridView1_EditingControlShowing);

        }

        void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)

        {

            if (e.Control.GetType().Name == "DataGridViewTextBoxEditingControl")//cell为类TextBox

            {

                DataGridViewTextBoxEditingControl editingControl = e.Control as DataGridViewTextBoxEditingControl;

                editingControl.TextChanged += new EventHandler(editingControl_TextChanged);

            }

        }

        void editingControl_TextChanged(object sender, EventArgs e)

        {

            Console.WriteLine(dataGridView1.CurrentCell.EditedFormattedValue);

            Console.WriteLine((sender as TextBox).Text);

        }

LuaNet实现如上逻辑如下:

function InitInputTable()

luanet.load_assembly("System");

luanet.load_assembly("System.Windows.Forms");

luanet.load_assembly("System.Data");

customerDataGridView = GetSMObjectByScope("workSpaceID.sub12.name1");

customerDataGridView.AllowUserToAddRows = true;

--注册EditingControlShowing事件

customerDataGridView.EditingControlShowing:Add(dataGridView1_EditingControlShowing)            

end

 function dataGridView1_EditingControlShowing(sender,  e)       

 if (e.Control:GetType().Name == "DataGridViewTextBoxEditingControl") then            

--注册TextChanged事件

e.Control.TextChanged:Add(editingControl_TextChanged);

end

 end

 function editingControl_TextChanged(sender,  e)

SetProperty("workSpaceID.sub12.TextBox1","Text",sender.Text);

 end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值