Otwieranie nowego okna po kliknięciu przycisku VSC#

0

Stworzyłem sobie form1 oraz form2. W oknie form1 mam button, i chciałbym aby po jego naciśnięciu pojawiało się okienko form2. Poszukałem sobie na googlach rozwiązania, lecz mam z tym taki problem ze okienko form2 otwiera mi się automatycznie i nie da się go zamknąć(tzn. zamyka sie i natychmiast otwiera nowe). Znalazłem też inny kod, ale on to juz w ogóle coś nie działa, ponieważ okienka otwierają się non-stop aż do zawieszenia :/. Dlatego prosiłbym was o mała pomoc, jak ten kłopot rozwiązać. "Pracuję" w środowisku MVS 2010 C#.

Jako że nie chce zakładać nowego tematu, dorzucę od razu dwa pytanka, tak przy okazji, ale najbardziej zależy mi na tym pierwszym problemie...
Jeśli już pomożecie mi się jakoś uporać z tym pierwszym problemem, to jak zrobić żeby po wyborze czegoś w tym okienku, wybór użytkownika pojawił się w okienku form1 ? Nie szukam gotowych rozw. po prostu jakaś mała podpowiedź czy coś.
I pytanie nr 2, czy po najechaniu myszką w menu wyboru czegoś tam, dało by się zrobić aby pojawił się podgląd wybranego przedmiotu?
Dziekuje za każda podpowiedź, pozadrawiam !:)

1

1 kod mówi więcej niż 1000 słów ;)

Tutaj przykład gotowego rozwiązania - oczywiście kontrolki musisz sobie dodać na okno (i najlepiej pozmieniaj im nazwy, bo zostawianie "button1" to bardzo zły zwyczaj.

okno 1:

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form2 f = new Form2();
            f.ShowDialog();

            label1.Text = "Użytkownik wybrał: " + f.Choice;
        }
    }
}

i okno 2:

namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        public string Choice
        { get; set; }

        // przycisk "OK"
        private void button1_Click(object sender, EventArgs e)
        {
            this.Choice = textBox1.Text; // tam użytkownik miał wprowadzić tekst
            this.Close();
        }
    }
}

I pytanie 2 - nie wiem do końca co chcesz zrobić, ale dałoby się (Zdarzenia MouseEnter, MouseLeave dla MenuItem)

0

Z tym pierwszym problemem poradziłem sobie sam już ale i tak dzięki za pomoc! Co do pytania drugiego, to postanowiłem zmienić koncepcje i chce zrobić tak, w wyborze przedmiotów był obrazek i tekst jednocześnie, a potem zależnie to co użytkownik wybierze to obrazek danego przedmiotu pojawi się w oknie nr 1(tym głównym)

0

Hm...a jak zmienić ten wybór w 2 oknie itd Tylko żeby dotyczył obrazków tzn. w nowym oknie będą same obrazki, użytkownik jakiś wybierze i on pokaże się w głównym oknie ? Jakieś podpowiedzi ?:P

0

Na drugiej formie robisz prosta przeglądarkę zdjęć, coś na wzór tego: http://www.codeproject.com/KB/selection/ImageBrowser.aspx Dajesz jakis button Wybierz, który zatwierdza wybór obrazka i zapisuje go w zmiennej(którą udostępnia za pomocą właściwości), a potem z formy głównej pobierasz ten obrazek i ładujesz do pictureboxa(który leży na formie głównej oczywiście), no i masz.
Tu masz jeszcze link opisujący prostsze dodawanie zdjęć do listviewa http://social.msdn.microsoft.com/Forums/en/winforms/thread/876b6517-7306-44b0-88df-caebf3b1c10f

0

Dzieki, za pomoc. Zrobiłem sobie tego listview'a w form2, a form1 mam tego picturebox'a, no i mam też w form2 przycisk potwierdzający, ale mam problem z dalszą częścią tzn. żeby wybrany obrazek pojawił się w form1, w konkretnym picturebox'ie. Przepraszam ze tak męczę, ale robię projekt na zaliczenie, a nigdy wcześniej nie bawiłem sie w c#, i po prostu potrzebuje czyjejś pomocy i wskazówek :)

0

Wlaściwość może wyglądać tak(W form2, tam gdzie masz listę obrazków):

private Image chosenOne;
public Image ChosenOne
{
 get { return this.chosenOne; }
}
 

A w OnClick buttona wybierz ustawiasz ją(bo wszystkie obrazki trzymasz w ImageList):

this.chosenOne = this.imageList1.Images[this.listView1.SelectedIndices[0]]; 

No i W form1 ustawiasz obrazek pictureBoxa:

//To umiesc tam gdzie pokazujesz forme ze zdjeciami
Form2 f = new Form2();
f.Owner= this;
if(f.ShowDialog() == System.Windows.Forms.DialogResult.OK) // ustawiasz dialogResult, zeby wiedziec czy poprawnie wybrano obrazek
{
 this.pictureBox1.Image = f.ChosenOne;
}
f.Dispose();

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