我有一個ListBoxControl在窗體(Form1)和它下面的一個按鈕,我想向我展示另一個窗體(Form2)。從另一個表格添加一個項目到一個ListBoxControl
在Form2中,我有一個TextBox和一個按鈕,我希望當我單擊此按鈕時將TextBox中的當前文本添加到另一個窗體Form1中的ListBoxControl中。
我該怎麼做?
形式1:
表格2:
我有一個ListBoxControl在窗體(Form1)和它下面的一個按鈕,我想向我展示另一個窗體(Form2)。從另一個表格添加一個項目到一個ListBoxControl
在Form2中,我有一個TextBox和一個按鈕,我希望當我單擊此按鈕時將TextBox中的當前文本添加到另一個窗體Form1中的ListBoxControl中。
我該怎麼做?
形式1:
表格2:
有一個使用對話框的標準模式。
public string KeyWord
{
get { return Textbox1.Text; }
}
在Form1上,單擊按鈕時:
Form 2上,用於讀取控制提供財產
using (Form2 dialog = new Form2())
{
// init Form2
var result = dialog.ShowDialog();
if (result == DialogResult.OK)
{
sting newKeyWord = dialog.KeyWord;
// add to listbox
}
}
使用其它形式的在此代碼:
Form1 frm;
if ((frm= (Form1)IsFormAlreadyOpen(typeof(Form1))) != null)
{
//get the value of the form
//frm.listboxcontrol.text
}
public static Form IsFormAlreadyOpen(Type FormType)
{
return Application.OpenForms.Cast<Form>().FirstOrDefault(OpenForm => OpenForm.GetType() == FormType);
}
您可以在Form1中創建一個公共方法:
public SampleMethodName(string Value)
{
// Write your code to add it the list.
ListBox1.Add(Value);
}
現在,當用戶打開的窗口2,添加一些文本的文本框,然後按[驗證, 您可以創建Form1的一個實例。
protected void valider_click(object sender, eventargs e)
{
Form1 frm = new Form1();
frm.SampleMethodName(TextBox.Value);
}
在表格2中,它給了我這個錯誤: '錯誤'GestionBib.Form1'沒有包含'AddMotCle'的定義,也沒有接受類型''的第一個參數的擴展方法'AddMotCle' GestionBib.Form1'可以找到(你是否缺少使用指令或程序集引用?)' –
你在form1中使用公共方法嗎?如果是這樣,那麼它不應該產生異常? – 2012-09-19 12:00:43
如果你不想使用對話框結果(正如Henk所建議的那樣),但是如果您想要打開第二個表單,請嘗試以下操作。即如果你想在添加ListBox項目時打開第二個窗體。
表1:
using System;
using System.Windows.Forms;
namespace FormComm
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
var form2 = new Form2(this);
form2.Show();
}
delegate void AddListBoxItemCallback(string text);
public void AddListBoxItem(object item)
{
if (this.InvokeRequired)
{
AddListBoxItemCallback callback = new AddListBoxItemCallback(AddListBoxItem);
this.Invoke(callback, new object[] { item });
}
else
{
this.listBox1.Items.Add(item);
}
}
}
}
表2:
using System;
using System.Windows.Forms;
namespace FormComm
{
public partial class Form2 : Form
{
private Form1 _form = null;
public Form2(Form1 form)
{
InitializeComponent();
this._form = form;
}
private void button1_Click(object sender, EventArgs e)
{
_form.AddListBoxItem(textBox1.Text);
}
}
}
是您的關鍵字的形式模態(的ShowDialog)或無(節目)? –
它是(showDialog) –