Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C++CLI / VB .Net / .Net-Framework » Anderes Form neu zeichnen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
03.12.2005, 10:13 Uhr
niels_ole_salscheider



Hallo,

wie kann ich in C# ein anderes Form (in meiner Anwendung) neu zeichnen?

Danke

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
03.12.2005, 14:10 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Ole,
kommt darauf an, von welcher Stelle aus Du das machen möchtest.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
03.12.2005, 14:48 Uhr
niels_ole_salscheider



Hallo,

ich hab' ein Form, in dem Eigenschaften eingestellt werden. Und wenn man da auf einen Button klickt, soll das Hauptfenster neu gezeichnet werden...

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
03.12.2005, 15:16 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Also ist der Dialog nicht modal.

C++:
.....
Form2 dlg;
.....
private void btnNew_Click(object sender, EventArgs e)
{
     dlg = new Form2();
     dlg.Show(this);
}

private void btnUpdate_Click(object sender, EventArgs e)
{
     // Ueber Invalidate und Update
     Invalidate(true);
     dlg.Update(); // reicht aus wenn nur SE neu gezeichnet werden sollen
}

private void btnRefresh_Click(object sender, EventArgs e)
{
     Refresh(); // Owner muss bei der Show() Methode gesetzt sein
}


MSDN:

Code:
Control.Update Method
Causes the control to redraw the invalidated regions within its client area.

There are two ways to repaint a form and its contents:
You can use one of the overloads of the Invalidate method with the Update method.
You can call the Refresh method, which forces the control to redraw itself and all its children. This is equivalent to setting the Invalidate method to true and using it with Update

The Invalidate method governs what gets painted or repainted. The Update method governs when the painting or repainting occurs. If you use the Invalidate and Update methods together rather than calling Refresh, what gets repainted depends on which overload of Invalidate you use. The Update method just forces the control to be painted immediately, but the Invalidate method governs what gets painted when you call the Update method.


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
03.12.2005, 15:38 Uhr
niels_ole_salscheider



Hallo,

das funktioniert aber nur für ein Form und alle, die diesem Form gehören, oder?

Ich will aber aus einem 2. Form heraus, das Owner-Form aktualisieren...

Oder geht das damin auch?

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
03.12.2005, 15:43 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
nein, dann brauchst Du eine Referenz auf Deine mainForm (Owner-Form). Deiner "Child-Form" muss also die Hauptform bekannt sein. Dann kannst Du Invalidate() ohne Parameter aufrufen.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
03.12.2005, 15:53 Uhr
niels_ole_salscheider



Hallo,

wie mache ich denn meiner Child-Form meine Hauptform bekannt?

Ole
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
03.12.2005, 16:44 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Ole,
Bsp.:

C++:
public partial class Form1 : Form
{
    public static Form1 frmMain;
    private Form2 dlg;
    public Form1()
    {
        InitializeComponent();
        frmMain = this; // initialisieren, sonst schepperts gewaltig!
    }

    private void btnNew_Click(object sender, EventArgs e)
    {
        dlg = new Form2();
        dlg.Show();
    }
}




Child:

C++:
private void button1_Click(object sender, EventArgs e)
{
     Form1.frmMain.Text = "Referenzierungstest";
}


--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 03.12.2005 um 16:46 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C++CLI / VB .Net / .Net-Framework ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: