
(1)实例化一个控件;
(2)设置控件实例属性;
(3)将控件实例添加到窗体的Controls集合中
【示例】用代码向窗体添加一个命令按钮,单击这个按钮关闭窗口并退出
(1)在Visual Studio中新建一个“Windos 窗体应用程序”
(2)窗体代码Form1.cs如下:
using System
using System.Collections.Generic
using System.Windows.Forms
using System.Drawing
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent()
//实例化一个命令按钮
Button btn = new Button()
//设置命令按钮的属性
btn.Location = new Point(50, 50)
btn.Size = new Size(80, 25)
btn.Text = "退出"
btn.Click += btn_Click
//添加到窗口的Controls集合中
this.Controls.Add(btn)
}
void btn_Click(object sender, EventArgs e)
{
this.Close()
}
}
}
(3)运行效果
窗体启动后
点击“退出”按钮后,窗口关闭。
在为窗口中加入命令之前,我们需要给窗口一个布局界面,这里需要注意,没有布局的窗口是无法往里面加入任何东西的。布局有很多的方式,在这里我们使用一个columnLayout,这是一个纵列的布局,其中有许多的参数,这里我们简单的使用-adj,他的作用是让元素对齐窗口的两边。我们的这一句布局要放在showWindow之前,也要在窗口元素(按钮等)之前,保证mel的正确运行。现在来为窗口添加一个按钮。按钮的mel为button,这里介绍他的三个后缀,分别是-label,-h,-c
-label:标题,也就是按钮的名字,后接字符串,为自己的按钮起个名字,这里我们叫myButton。
-h:高度,定义按钮的高度,后接一个浮点数。
-c:命令,决定这个按钮摁下去会执行一个什么 *** 作,后接proc(程序)。
我们来完整的写一下这个按钮:
button -l "myButton" -h 20 -c ""
这里的-c后面我暂时留空,因为我们还没有定义出一个proc来让他调用。这是我们接下来要完成的。现在我们先把这句mel放在布局之后的位置,然后使用//屏蔽掉从-c开始的内容,运行一下看看我们现在窗口的样子。
如何往窗口中添加按钮以及通过按钮执行命令
我们已经可以看到自己的窗口与按钮,如果觉得按钮太小了,还可以增大-h后面的值。现在这个按钮不会发挥任何作用,我们要为其定义一个程序来让其使用。
使用proc定义一个自定义的程序,他的格式如下:
proc 名字(行参){内容}。
这里的行参可能不太容易理解,所幸简单的命令并不需要用到它,留空就可以了。这里我们来自定义一个可以完成对齐功能的程序。
对齐的mel为:
string $ParCons[] = `parentConstraint`
delete $ParCons
这两句mel可以让后选择的物体对齐到先选择的物体上,其实就是简单地利用了父子链接,这里不多解释,我们开始使用proc定义程序。
proc ALT(){
string $ParCons[] = `parentConstraint`
delete $ParCons
}
这里程序的名字是可以随意定义的,之后再button中调用时需要用到,注意我们虽然没有行参,仍要写小括号,只是将其留空即可。现在我们将程序的名字ALT加入到button的-c之后,注意需要用引号将其提示为字符串。
最终的mel如下
if(`window -ex "myWin1"`){
deleteUI -window myWin1
}
window -title "myFirstWin" -wh 300 500 myWin1
columnLayout -adj 1
button -l "myButton" -h 20 -c "ALT"
showWindow myWin1
proc ALT(){
string $ParCons[] = `parentConstraint`
delete $ParCons
}
绿色部分为我们的窗口部分,红色使我们定义的程序。这个proc实际上是定义了一个后台的指令,而我们在button中通过-c调用了他,他自动执行这个指令中的命令,也就是具有对齐功能的mel,完成了按钮与程序指令的链接,让这个按钮有了自己的用处。
如何往窗口中添加按钮以及通过按钮执行命令
最后我们可以将这段mel拖到工具架上供日后使用,将来会介绍如何使用mel在maya的菜单中添加自己想要的菜单栏,并为其添加子元素。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)