我正在尝试执行它从数据库加载一些信息。传递给已经打开的表单
为此,我打开一个表单,列出可以加载的所有内容。
当你点击加载时,我想把ID传回原始表单。
但是我似乎无法调用这种形式的方法。
任何帮助,将不胜感激。
我正在尝试执行它从数据库加载一些信息。传递给已经打开的表单
为此,我打开一个表单,列出可以加载的所有内容。
当你点击加载时,我想把ID传回原始表单。
但是我似乎无法调用这种形式的方法。
任何帮助,将不胜感激。
我会翻转过来,这样的:
这样的选择形式将呼叫者不会脱钩,无论在哪里,是有道理的,而不需要修改它可以重复使用属性或方法。
在选择对话框中窗体类:
public string GetSelectedId()
{
return whateverIdThatWasSelected;
}
在调用形式:
using(var dlg = new SelectionDialogForm())
{
if (dlg.ShowDialog() == DialogResult.OK)
{
DoSomethingWithSelectedId(dlg.GetSelectedId());
}
}
您可以将属性添加到您的窗体类,并从其他形式引用它。
例如。
public class FormA : Form
{
private string _YourProperty = string.empty;
public string YourProperty
{
get
{
return _YourProperty;
}
set
{
_YourProperty = value;
}
}
}
public class FormB : Form
{
public void ButtonClick(object sender, EventArgs args)
{
using (FormA oForm = new FormA)
{
if (oForm.ShowDialog() == DialogResult.OK)
{
string Variable = oForm.YourProperty;
}
}
}
你只需要设置对形式的一个按钮,点击你的财产,那么你可以从B型 }访问
为什么在对话形式不能创建所选项目的公共属性,像这样的东西。
public int SelectedItemId {get;private set;}
//In your item selected code, like button click handler..
this.SelectedItemId = someValue;
然后,只需打开窗体作为对话框
//Open the child form
using (var form = new ChildForm())
{
if (form.ShowDialog(this) == DialogResult.OK)
{
var result = form.SelectedItemId;//Process here..
}
}
正确的方式做,这是介绍这是用来通过两种形式控制器类。然后,您可以使用Controller上的属性,设置该属性将触发NotifiyPropertyChanged事件。
看到INotifyPropertyChanged更多信息
你能告诉我们你在哪里试图调用窗体上的方法的代码? – 2011-04-07 13:05:02