您的位置:首页 > 编程语言 > C#

C#之独特见解实现窗体间传递

2010-01-27 15:55 169 查看
接触C#不满一个月,问题却遇到非常多。总结下来,一共有两个问题。

一个是类的理解,到目前为止,才知道类有属性、有方法,不知道自己有没有理解错,书本还需看多几遍。

第二个就是窗体间参数的传递,看过很多博客的介绍,都能实现,不过就是有点复杂。

我说说我的思路,从主窗体到子窗体的参数传递,相信大家都很容易理解,无非新建子窗体时候在括号里面加上参数而已。

但我们大多数情况,是需要子窗体修改主窗体的内容,比如,ListBox的修改。



高手博客大体是用两个引用同一个类型,子窗体修改类型的同时主窗体再刷新类型,这样就能实现子窗体传参到主窗体。

但由于我们传参时大多数情况下是string或int或bool类型,其实我们大可以通过修改子窗体某些特定类型的属性来实现传参。

比如我上图所示,参数就是string类型的,而窗体Text属性也是string类型的。

我们就可以在子窗体“增加”的点击鼠标事件(双击Button控件)中添加如下代码:

private void OK_Click(object sender, EventArgs e)
{
this.DialogResult = DialogResult.OK;
this.Close();
this.Text = TextBox.Text;
}


然后在主窗体创建子窗体那里添加如下代码:

private void Add_Click(object sender, EventArgs e)
{
Second second = new Second();
second.ShowDialog();
if (second.DialogResult == DialogResult.OK)
{
ListData.Add(second.Text);
ListBox.DataSource = null;
ListBox.DataSource = ListData;
}
}


可以很清晰看到,我直接Add了子窗体的Text属性,如此,就不必记住那些繁琐的静态类等等

不过此法只适合新手写小程序使用,如大型程序,强烈建议不要使用此方法。

如果属性中没有你想要的类型,可自行添加,不在本文讨论之列。

菜鸟见解,还请各位高手指教。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: