[英]Full access from Form2 to Form1
如何創建從Form 2到Form1的完全訪問權限
所以我可以在第二個Form2中使用From1中的所有Textboxes,Datagridviews和給定信息
我的計划:用戶在我的DataGridView中選擇一個項目,然后自動打開我的第二個表單,所有信息都在文本框中給出,依此類推...用戶可以對其進行修改並將其保存到我的SQL數據庫中,關閉Form2並再次打開Form1
我看着Stackoverflow和Google,但找不到解決方案,為我工作...
假設您有個人班級:
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
}
和綁定到網格的人員列表
List<Person> people = GetPeople();
peopleGridView.DataSource = people;
當您雙擊某行時,獲取綁定數據的人並將其傳遞給第二種形式:
private void peopleGridView_DoubleClick(object sender, EventArgs e)
{
if (peopleGridView.CurrentRow == null)
return;
Person person = (Person)peopleGridView.CurrentRow.DataBoundItem;
using (var editForm = new PersonDetailsForm(person))
{
if (editForm.ShowDialog() != DialogResult.OK)
return;
// get updated person data and save them to database
UpdatePerson(editForm.Person);
}
}
在編輯表單中顯示控件中的人員數據(您也可以使用數據綁定):
public partial class PersonDetailsForm : Form
{
public PersonEditForm(Person person)
{
InitializeComponent();
idLabel.Text = person.Id.ToString();
nameTextBox.Text = person.Name;
// etc
}
public Person Person
{
return new Person {
Id = Int32.Parse(idLabel.Text),
Name = nameTextBox.Text
};
}
}
好處-您可以獨立更改PersonEditForm
添加/刪除控件,更改控件類型,添加數據綁定等,而無需更改您的主窗體。
您可以在Form2中創建一個構造函數,該構造函數采用將填充控件的參數,例如:
public Form2(string property1, List<object1> objects)
{
textbox1.text = property1;
gridview1.DataSource = objects;
//and so on
}
然后從form1調用它們
Form2 form = new Form2(string1,list1);
form.Open();
或者您可以將單個對象傳遞給構造函數,並在Form2中擴展其屬性
將所有必要的數據傳輸到第三類,並將實例作為參數傳遞給form2。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.