当前位置:编程学习 > C#/ASP.NET >>

想请教一下 按扭调用窗体的 问题???

最近在做一套进销存的系统,在第易做图菜单中有很多 按扭 要调用 不同的窗体!
本来 只要在每个按扭的点击事件中 调用 窗体 就可以了,可是 最近看了 SourceGrid 的源码
发现里面 在点击不同单元格 调用不同窗体时 ,他用了一个方法:根据所点击单元格的内容,去找相对的窗体,在实例化对应的窗体 然后调用!
我在想能不能也通过获得按扭的  Text 属性 ,然后去找到对应的窗体 并实例化!

private void linkEvents_Executed(object sender, EventArgs e)
{
SourceGrid.CellContext cellContext = (SourceGrid.CellContext)sender;
Type formType = (Type)((SourceGrid.Cells.Cell)cellContext.Cell).Tag;
Form form = (Form) Activator.CreateInstance( formType );
form.Owner = this;
form.Show();
}

如果有谁看过SourceGrid源码的 ,可以试试
下面是我模仿上面的代码 

private void Button_click(object sender,EventArgs e)
{
    button bt =(button)sender;
    Type formType=(Type)bt.text;
    Form form=(Form)Activator.CreateInstance(formType);
    form.Show();
}

窗体的Name属性 我都是用 按扭的Text 命名的!

系统提示错误是:bt.text是string类型 不能类型化

大家 帮帮忙 --------------------编程问答-------------------- 一般都把额外的信息放到控件的Tag属性中。
string的值要是一个窗体的全名称,比如  TestProject.Form2
--------------------编程问答-------------------- Type formType=(Type)bt.text; 这个是强制转换,就是把字符串转换成form类型,肯定是不行的。
我用过findControl(string controlID),但可能不能用在你的情况。
我猜测的一个方案是把你的formtype都放在一个assembly里面,然后用gettype()
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,