本来我是想从C#中把form对象传递到Lua里面去,然后在Lua中调用form下面的各个组件,比如textbox、button等,从而实现在Lua中控制C#中form界面的布局。
但是发现如下问题:
1 //Form1.cs 2 3 class Form1 4 { 5 private System.Windows.Forms.TextBox textBox1; 6 private System.Windows.Forms.Button button1; 7 8 private void button1_Click(object sender, EventArgs e) 9 { 10 Lua m_lua = new Lua(); 11 m_lua.DoFile("plugin.lua"); 12 object[] objs = m_lua.GetFunction("OnLoad").Call(this, this.textBox1); 13 m_lua.Close(); 14 } 15 }
1 --plugin.lua 2 3 function OnLoad(form, textbox) 4 textbox.Text = form.button1.Text -->Nil 5 textbox.Text = form.button1 -->希望获得button对象,结果发现这个是字符串 6 end
问题在于,本来我以为将form传递到lua中后,就可以在lua中调用form.button1及对象链,结果发现form.button1变成了字符串。
我猜测可能是只能传递单个对象,其属性和下属的子对象只能变成string了(toString())。
|
请发表评论