Wątek przeniesiony 2015-04-02 13:33 z C# i .NET przez somekind.

Wykonywanie akcji w momencie otwarcia okna

2015-04-02 11:12

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

Mam problem dotyczący wykonywania akcji w momencie otwarcia okna. Mój Form1 po kliknięciu przycisku otwiera Form3, w którym musi się wykonać akcja. Niestety nie mogę użyć Shown w Form1 bo wtedy będę mógł wykonać metodę z Form3 w Form1 a nic mi to nie da. Jakieś pomysły ?

InitializeComponent(); tak zadziała ?

edytowany 1x, ostatnio: foxwsp, 2015-04-02 11:23
Nie używaj prefiksów/postfiksów w tytułach wątków - od podawania nazwy języka/technologii są tagi; - furious programming 2015-04-02 16:50

Pozostało 580 znaków

2015-04-02 13:02

Rejestracja: 5 lat temu

Ostatnio: 3 miesiące temu

0

Load jest wykonywane przy każdy odpaleniu okna.
https://msdn.microsoft.com/pl[...].form.load%28v=vs.110%29.aspx

natomiast InitializeComponent jest wykonywane przy tworzeniu instancji obiektu.

edytowany 1x, ostatnio: teo215, 2015-04-02 13:02

Pozostało 580 znaków

2015-04-02 13:21

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

Zrobiłem to trochę inaczej, wrzuciłem kod do konstruktora i faktycznie przy teście zadziałało. Niestety mam teraz inny problem.

 using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using WindowsFormsApplication1;

namespace WindowsFormsApplication1
{
    public partial class Form3 : Form
    {
        OracleConnection conn = new OracleConnection();
        public Form3()
        {
             InitializeComponent();
             Form1 m = new Form1();
             String connectionString = "user id=" + m.TextBox1Text + ";password="
                  + m.masked1 + ";data source=(DESCRIPTION=(ADDRESS=" +
                  "(PROTOCOL=tcp)(HOST=" + m.TextBox3TEXT +
                      ")" +
                  "(PORT=" + m.TextBox4TEXT + "))(CONNECT_DATA=(SERVICE_NAME=" +
                  m.TextBox5TEXT + ")))";
             using (OracleConnection conn = new OracleConnection(connectionString))
             {

                 conn.Open();

             }
        }

       private void button1_Click(object sender, EventArgs e)
       {
           OracleCommand cmd = conn.CreateCommand();
           cmd.CommandText = "INSERT INTO dept VALUES ('66666', 'trololo61')";
           cmd.ExecuteNonQuery();
       }

    }
}

conn.Open(); z mojego konstruktora kończy się w momencie zakończenia wykonywania jego kodu. Nie jest to zmienna, którą mogę zadeklarować przed klasą by była globalna, więc przy okazji button1_Click zanim wpiszę wszystko co jest w środku, musiałbym jeszcze raz otworzyć połączenie, a bardzo chciałbym to jakoś pominąć. Da się to jakoś zrobić?

Pozostało 580 znaków

2015-04-02 13:33
Moderator

Rejestracja: 12 lat temu

Ostatnio: 3 godziny temu

Lokalizacja: Wrocław

1

Nie ma to jak tworzyć w konstruktorze okna inne okna, operować na pustych wartościach i łaczyć się do bazy.

Żeby zrobić to prawidłowo musisz jeszcze przez rok uczyć się programowania obiektowego. W konsoli.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2015-04-02 14:07

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

gdzie wg. Ciebie tworze w konstruktorze okna inne okna?

Pozostało 580 znaków

2015-04-02 14:56
Moderator

Rejestracja: 12 lat temu

Ostatnio: 3 godziny temu

Lokalizacja: Wrocław

0

W tym kodzie masz tylko jeden konstruktor i jedno new, nietrudno znaleźć.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."
Tworzenie okna to nie jest czynność, którą wykonuje się w kodzie! ;-) - fourfour 2015-04-02 15:21
@somekind dwa, ma dwa!! Co dostanę? @fourfour +1 - abrakadaber 2015-04-02 16:04
Aż boję się pytać co ma w From1 i Form2 :D + to nazewnictwo mmm.. - wojas666 2015-04-02 16:09
"using WindowsFormsApplication1;" - wojas666 2015-04-02 16:13
@abrakadaber, faktycznie... Ale jedyne co mogę dać na forum to ban, a na to nie zasługujesz. :P - somekind 2015-04-02 20:10

Pozostało 580 znaków

2015-04-02 16:26

Rejestracja: 5 lat temu

Ostatnio: 3 lata temu

0

przeciez to jest tworzenie instancji a nie okna ..

Pozostało 580 znaków

2015-04-02 20:13
Moderator

Rejestracja: 12 lat temu

Ostatnio: 3 godziny temu

Lokalizacja: Wrocław

0
foxwsp napisał(a):

przeciez to jest tworzenie instancji a nie okna ..

Instancji (czyli obiektu) okna, bo przecież Form1 to jest klasa reprezentująca okno aplikacji.


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0