2011-07-03 9 views

Odpowiedz

5

Napisałem jakiś czas temu, działa dokładnie tak, jak zwykła klasa wiadomości.

CustomMessageBox (klasa): http://pastebin.com/m8evBmZi

MessageForm (Form): http://pastebin.com/jawHZDzY

MessageForm (Designer Code): http://pastebin.com/CRXjeUFN

+0

hmmm ... czy tak? :) Myślałem, że gdzieś po prostu zrobię "Dodaj nowy obraz" i voila, ale to jedna prawdziwa praca do wykonania :) cóż, mam teraz szansę na zrobienie niestandardowych rzeczy, przeczytanie i zrozumienie twojego kodu przez jakiś czas, aby uzyskać zrozumienie tego ... Dzięki –

+1

Nie ma problemu, nie zapomnij oznaczyć jako odpowiedź. Zapraszam do korzystania z mojego kodu, nie jest on chroniony przed kopiowaniem. :) –

3

Nie można zastąpić tego zachowania MessageBox. Rozwiązaniem jest użycie niestandardowego okna komunikatu, sprawdzenie this lub wdrożenie własnego MessageBoxForm i dodanie do niego własnych ustawień, sprawdź this.

1

Można użyć Task Dialog Indirect API z Microsoft, który pomoże Ci pokazać niestandardowych okien dialogowych .

+0

Gdybyś był prawdopodobnie Rube Goldbergiem, w przeciwnym razie prawdopodobnie utworzyłbym własny formularz ... –

+0

@Ed S Dlaczego powinienem wymyślić koło, jeśli jest dostępne API, to jest to proste, zamiast tworzyć nowy :) – Anuraj

+1

Nie sądzę, że korzystanie z PInvoke jest tutaj uzasadnione. To nie jest ponowne wymyślanie koła, to jest bardziej jak ponowne wymyślenie ... spinacza do papieru. Proste zadanie. –

0

Nie można bezpośrednio zmienić ikony MessageBox, więc googlowałem i znalazłem rozwiązanie. możemy zmienić ikonę pola wiadomości za pomocą haka okna.

Słuchajcie są linki MSDN Magazine,

Link-1

Link-2

a także zapewnili przykładową aplikację na ten link.

Mam nadzieję, że ci to pomoże!