Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Доступ к форме(возможно ли это?)

25K
28 декабря 2007 года
polar-bear
15 / / 21.12.2007
Здравствуйте все. Уменя есть приложение состоящее из двух форм. На первой есть DataGrid связазаный с таблицей. Вторая форма используестя для добавления данных в эту таблицу.
Вот таким образом.
Код:
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 загружать заново? Наверное это неправильно, тогда что делать?
1.8K
29 декабря 2007 года
CilCatblack
251 / / 20.09.2007
Цитата: polar-bear

1. Можно ли обращаться непосредственно к форме, а не объявляя ee объект. Если да то каким образом.



Без объявления объекта никак.
:)

370
30 декабря 2007 года
koval
443 / / 29.08.2005
Цитата: CilCatblack
Без объявления объекта никак.
:)



Ну почему сразу нет, можно создать интерфейсик который передавать вкачестве параметра, а можно использовать делегаты.

5
30 декабря 2007 года
hardcase
4.5K / / 09.08.2005
В Делфи была такая штука, DataModule. Это был элементарный класс-контейнер для хранения всяческих DataSource/Connection компонентов. Это было достаточно удобно - до них можно было дотянуться DataBound-компонентами из любой создаваемой формы.

Попробуйте воспользоваться этой техникой.
25K
03 января 2008 года
polar-bear
15 / / 21.12.2007
Да верно она и по сей день есть. И это достаточно удобно во всяком случае для меня. Только вот с помощью чего реализовать подобную технику в .NET
13K
11 января 2008 года
V.V.V.
59 / / 21.07.2006
Я так понимаю что форма которая меняет вызывается как диалог основной формы (где сетка). Если так то в форме-диалоге можно перегрузить конструктор или метод Show() и передавать ему ссылку на главную форму. И потом делать с ней что угодно. Если же эти формы не связани как диалог-главная то у них есть общая родительская форма с помощью которой их можно аналогично связать. А чтоб лучше понять что делает твой код напиши fr.show() перед Close():) .
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог