Добрый день, после вызова метода Code: public void data_load() { dataGridView1.DataSource = bindingSource1; dataGridView2.DataSource = bindingSource2; dataGridView3.DataSource = bindingSource3; dataGridView4.DataSource = bindingSource4; dataGridView1.ResetBindings(); dataGridView2.ResetBindings(); dataGridView3.ResetBindings(); dataGridView4.ResetBindings(); if (Form1.access == 1) { bindingSource1.DataSource = Form1.select("SELECT * FROM Працівники ORDER BY id", "Працівники").Tables["Працівники"]; bindingSource2.DataSource = Form1.select("SELECT * FROM Замовлення ORDER BY Код", "Замовлення").Tables["Замовлення"]; bindingSource3.DataSource = Form1.select("SELECT * FROM Поставщики ORDER BY Код", "Поставщики").Tables["Поставщики"]; bindingSource4.DataSource = Form1.select("SELECT * FROM Матеріали ORDER BY Код", "Матеріали").Tables["Матеріали"]; } else if (Form1.access == 4) { bindingSource2.DataSource = Form1.select("SELECT Код,Адреса,Опис,Ціна,Контакти FROM Замовлення WHERE Наявність_проекту=True AND " + sql + " ORDER BY Код", "Замовлення").Tables["Замовлення"]; dataGridView2.ReadOnly = true; bindingSource4.DataSource = Form1.select("SELECT Код,Назва,Характеристики,Кількість FROM Матеріали ORDER BY Код", "Матеріали").Tables["Матеріали"]; } else if (Form1.access == 3) { bindingSource2.DataSource = Form1.select("SELECT Код,Опис,Контакти,Ціна FROM Замовлення WHERE " + sql_2 + " ORDER BY Код", "Замовлення").Tables["Замовлення"]; dataGridView2.ReadOnly = true; } else if (Form1.access == 2) { bindingSource1.DataSource = Form1.select("SELECT * FROM Працівники ORDER BY id", "Працівники").Tables["Працівники"]; dataGridView1.ReadOnly = true; bindingSource2.DataSource = Form1.select("SELECT * FROM Замовлення ORDER BY Код", "Замовлення").Tables["Замовлення"]; bindingSource3.DataSource = Form1.select("SELECT * FROM Поставщики ORDER BY Код", "Поставщики").Tables["Поставщики"]; } } который вызывается в событии Form2_Load после его вызова метод Form2_Load перестает выполнятся..
вместо if else лучше используй свич: Code: switch(Form1.access) { case 1: break; case 2: break; ... default: break; } Покажи сам Form2_Load
Code: private void Form2_Load(object sender, EventArgs e) { label12.Visible = false; access_f(Form1.access); WindowState = FormWindowState.Maximized; MessageBox.Show("fefesf"); #region Кнопки для каждой вкладки if (Form1.access == 1) { // Первая // Редактировать editButton = new DataGridViewButtonColumn(); editButton.HeaderText = "Редагувати"; editButton.Text = "Редагувати"; editButton.UseColumnTextForButtonValue = true; editButton.Width = 80; dataGridView1.Columns.Add(editButton); // Удалить deleteButton = new DataGridViewButtonColumn(); deleteButton.HeaderText = "Видалити"; deleteButton.Text = "Видалити"; deleteButton.UseColumnTextForButtonValue = true; deleteButton.Width = 80; dataGridView1.Columns.Add(deleteButton); // Конец editButton1 = new DataGridViewButtonColumn(); editButton1.HeaderText = "Редагувати"; editButton1.Text = "Редагувати"; editButton1.UseColumnTextForButtonValue = true; editButton1.Width = 80; dataGridView2.Columns.Add(editButton1); // deleteButton1 = new DataGridViewButtonColumn(); deleteButton1.HeaderText = "Видалити"; deleteButton1.Text = "Видалити"; deleteButton1.UseColumnTextForButtonValue = true; deleteButton1.Width = 80; dataGridView2.Columns.Add(deleteButton1); } else if (Form1.access == 2) { editButton1 = new DataGridViewButtonColumn(); editButton1.HeaderText = "Редагувати"; editButton1.Text = "Редагувати"; editButton1.UseColumnTextForButtonValue = true; editButton1.Width = 80; dataGridView2.Columns.Add(editButton1); // deleteButton1 = new DataGridViewButtonColumn(); deleteButton1.HeaderText = "Видалити"; deleteButton1.Text = "Видалити"; deleteButton1.UseColumnTextForButtonValue = true; deleteButton1.Width = 80; dataGridView2.Columns.Add(deleteButton1); } else if (Form1.access == 3) { project = new DataGridViewButtonColumn(); project.HeaderText = "Спроектувати"; project.Text = "Спроектувати"; project.UseColumnTextForButtonValue = true; project.Width = 80; dataGridView2.Columns.Add(project); } else if (Form1.access == 4) { catch_work = new DataGridViewButtonColumn(); catch_work.HeaderText = "Стан"; catch_work.Text = "Почати"; catch_work.UseColumnTextForButtonValue = true; catch_work.Width = 80; dataGridView2.Columns.Add(catch_work); } #endregion string[] mass = { "Директор", "Проектор", "Менеджер", "Інженер" }; comboBox1.Items.AddRange(mass); string[] pos = { "1", "2", "3", "4" }; comboBox2.Items.AddRange(pos); data_load(); }
А он и не должен был помочь - он только для удобочитаемости, а тебе важен этот пункт: label12.Visible = false; То есть когда кликаешь по форме, она становиться неактивной, если хочешь, что бы она снова была активной - то либо убери эту строчку, либо(я думаю будет правильней) добавь строчку: label12.Visible = true; в самом конце метода : public void data_load() Или в конце евента Form2_load , то есть после того как выполняться все пункты - форма снова станет активной.
Метод data_load() вызывается в конце метода Form2_Load(), что еще должно выполняться в методе Form2_Load()?
Тогда что не выполняется? Я так понял, что форма перестает быть видимой-кликабельной. data_load(); - вызывается, как правильно заметил оппонент выше, в самом конце. После этого следует завершение Form2_Load.
дело в том, что с начала вызывается метод, а потом в форм2_лоад иницилизируются кнопки editButton = new DataGridViewButtonColumn(); editButton.HeaderText = "Редагувати"; editButton.Text = "Редагувати"; editButton.UseColumnTextForButtonValue = true; editButton.Width = 80; dataGridView1.Columns.Add(editButton); П.С. При отладке скопировал код и сбросил сюда...
Хорошо - сначала вызывается data_load() , а затем из неё должно вызываться Form2_Load , так?Но дело в том, что в data_load () ты некоим образом не вызываешь Form2_Load, тогда нужно симулировать евент Form2_Load в data_load(). Как у тебя вообще вызывается Form2_Load - через ui или ты хотел делать вызов через data_load()?
Ты сам себе противоречишь(сначала писал что в обработчике события вызывается метод), определись сначала что да как, а то все описанное вызывает когнитивный хаос.
смотри, все просто есть метод public void data_load(){ ----------- } есть событие Form2_load private void Form2_Load(object sender, EventArgs e){ data_load(); -- --- ---- Код который не выполняется }
да нет, не троль. Просто я несколько дней с ним копался и мои вскипевшие мозги сдались и пытаются найти ответ... Проблему решил. Дело было в одном коряом запросе. (несколько символов было на другом языке)