namespace ARM_Manager_MOB
{
public partial class OneOrderForm : Form
{
string OrderId;
public OneOrderForm(string id)
{
InitializeComponent();
OrderId = id;
MainForm fr = new MainForm();
}
private void OneOrderForm_Load(object sender, EventArgs e)
{
CustomerCombo.DataSource = fr.Data.Data.Tables["Customers"];
CustomerCombo.DisplayMember = "customer_name";
CustomerCombo.ValueMember = "customer_id";
}
private void OkButton_Click(object sender, EventArgs e)
{
if(OrderId=="0")
{
DataRow Row = fr.Data.Data.Tables["Orders"].NewRow();
Row["order_date"] = OrderDate.Value;
Row["customer_id"] = Convert.ToInt16(CustomerCombo.SelectedValue);
fr.Data.Data.Tables["orders"].Rows.Add(Row);
fr.Data.Order_Adapter.Update(fr.Data.Data.Tables["Orders"]);
Close();
}
}
}
}
Доступ к форме(возможно ли это?)
Вот таким образом.
Код:
Тут все работает но никаких изменений в ДатаГриде при возврате на главную форму я не вижу. Я понимаю почему. Но вот тут начинаются вопросы.
1. Можно ли обращаться непосредственно к форме, а не объявляя ee объект. Если да то каким образом.
2. Если нет. То как можно вызвать обновление DataGrid'а на основной форме. Удалять все строки из него. И с помощью DataAdpter.fill загружать заново? Наверное это неправильно, тогда что делать?
Цитата: polar-bear
1. Можно ли обращаться непосредственно к форме, а не объявляя ee объект. Если да то каким образом.
Без объявления объекта никак.
:)
Цитата: CilCatblack
Без объявления объекта никак.
:)
:)
Ну почему сразу нет, можно создать интерфейсик который передавать вкачестве параметра, а можно использовать делегаты.
Попробуйте воспользоваться этой техникой.
Да верно она и по сей день есть. И это достаточно удобно во всяком случае для меня. Только вот с помощью чего реализовать подобную технику в .NET
Я так понимаю что форма которая меняет вызывается как диалог основной формы (где сетка). Если так то в форме-диалоге можно перегрузить конструктор или метод Show() и передавать ему ссылку на главную форму. И потом делать с ней что угодно. Если же эти формы не связани как диалог-главная то у них есть общая родительская форма с помощью которой их можно аналогично связать. А чтоб лучше понять что делает твой код напиши fr.show() перед Close():) .