我正在尝试从数据库加载一些信息。
为此,我打开一个列出可以加载的所有内容的表单。
当您点击加载时,我想将ID传回原始表单。
但是我似乎无法以该形式调用方法。
任何帮助都将不胜感激。
答案 0 :(得分:1)
我会翻看这个:
这样选择表单将与调用者分离,并且可以在任何有意义的地方重用,而无需修改它。
在选择对话框表格中:
public string GetSelectedId()
{
return whateverIdThatWasSelected;
}
在通话表格中:
using(var dlg = new SelectionDialogForm())
{
if (dlg.ShowDialog() == DialogResult.OK)
{
DoSomethingWithSelectedId(dlg.GetSelectedId());
}
}
答案 1 :(得分:0)
您可以向表单类添加属性,并从其他表单引用它。
例如
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;
}
}
}
您只需要在表单A上单击按钮设置属性,然后就可以从表单B访问它 }
答案 2 :(得分:0)
为什么不在对话框表单中为所选项创建公共属性,如下所示。
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..
}
}
答案 3 :(得分:0)
执行此操作的正确方法是引入两个表单使用的Controller类。然后,您可以在Controller上使用属性,当设置它时将触发NotifiyPropertyChanged事件。
请参阅INotifyPropertyChanged了解详情