Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > .NET Languages
You last visited: Today at 19:19

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Multi Form/Bereiche austauschen/...

Discussion on Multi Form/Bereiche austauschen/... within the .NET Languages forum part of the Coders Den category.

Reply
 
Old 04/16/2014, 13:35   #16


 
elite*gold: 1091
Join Date: Jun 2007
Posts: 19,836
Received Thanks: 7,180
Quote:
Originally Posted by tolio View Post
webseiten sind außendarstellung, da muss immer alles schön und glänzend sein. genau wie werbung.

aber ein produkt ist eben nicht werbung sondern das produkt und muss deswegen das können was es verspricht. die winform controls sind einfach funktional und tun was sie sollen.

es ist nicht so das ich sagen würde man sollte kein wpf nutzen, aber wenn nachher die hälfte der entwicklungszeit für gui draufgeht dann läuft irgendwas falsch, einfach die fertigen controls drauf und gut ist.
Das kommt aber sicherlich nicht gut rüber. Die Webseite total ansprechend und professionell gestaltet und dann möchtest du als fertiges Produkt die hässlichen WinForm Controls rüberbringen? Sorry aber das ergibt nicht wirklich Sinn. Natürlich steht die Funktionsweise im Vordergrund, allerdings macht das Design eben für den Kunden viel aus. Schließlich könnte es mehrere Programme für den selben Nutzen mit dem selben Funktionsumfang geben. Was meinst du, wonach der Kunde dann wohl entscheidet?

Interne Nutzung (z.B. firmenintern) betrifft das nicht, da stimme ich dir zu das es da kein Design braucht und es nur um reine Funktionalität geht.

Das können wir jetzt hier ewig weiterführen weil wir beide verschiedene Standpunkte vertreten. Darum geht es aber hier primär auch nicht, sondern um den Funktionsumfang den WPF bietet wenn es um dynamische Panels geht.
Mostey is offline  
Old 04/16/2014, 14:24   #17
 
elite*gold: 0
Join Date: Oct 2008
Posts: 260
Received Thanks: 143
Okay, also fassen wir zusammen das gerade wenn es ums Design geht Wpf´s mehr Möglichkeiten bieten. So wie ich es sehe brauche ich aber auch für simple Dinge, wo das Design nicht das primäre Ziel ist, enorm viel Zeit - wenn ich Wpf´s verwende. Natürlich brauche ich immer weniger Zeit, umso mehr ich mich damit beschäftigen würde.

Für den Anfang meiner C# Programme habe ich mich aber entschieden Window Forms zu verwenden und eben jetzt mal mit Panels deren Visible Status ich auf true oder eben false setze.
Ich werde wenn ich die Zeit finde, neben Webdev und den Windows Forms, mich mit Wpf´s mal auseinandersetzen.



Sooo vorerst habe ich aber noch zu den Window Forms eine Frage und zwar habe ich ein Menü und alle meine Panels haben den Visible Wert -> false. Nun klicke ich eben auf den ersten Menüpunkt 1 und alles funktionert - Das Panel wird angezeigt per panelwhatever1.Visible = true.

Jetzt klicke ich den zweiten Menüpunkt an und es passiert nichts.
Ich hatte gehofft, dass nun automatisch das vorherige Panel wieder seinen Startwert false für die Sichtbarkeitswert bekommt - leider ist dem nicht so.
Natürlich ist die Lösung für mich nun gewesen das Panel von Menüpunkt 1 zu verstecken und dann erst das Panel, von Menüpunkt 2, sichtbar zu machen.
Optional kann ich ja noch die Controls clearen, schätze das wäre dann eine Performance Verbesserung - kenne mich wie gesagt noch nicht wircklich aus... .

Die Frage ist nun natürlich wenn ich mehrere Menüs habe wäre es wieder morz aufwendig festzustellen, woher komme ich und welches panel muss ich nun unsichtbar machen... .
Die "Hau drauf!"-Methode wäre alle Panels zu verstecken und dann das gewünschte Panel sichtbar zu machen... .

Kurz und knapp: Existiert da nicht irgendeine andere BESSERE Lösung mit dem diese Sache besser gelöst wird?

#Edit:
Gleich noch ne Frage - Im Visual Studio Designer gibt es keine Möglichkeit einzelne Objekte per Dokumentengliederung auszublenden... . Das heißt ich muss, bei beispielsweise 20 Panels in Form1, 19 Panels aus dem übergeordneten Container abdocken und zur Seite schieben um an das erste Panel zu kommen wo ich dann Window Forms, die sich darauf befinden, verschieben zu können - neue hinzufügen zu können, etc. .
Andreas9 is offline  
Old 04/16/2014, 14:45   #18
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Erstell die Panels dynamisch, dann hast du das Problem mit dem Designer nicht.
Möglichkeiten gibt es viele für dein Vorhaben. Performance spielt hier aber keine Rolle. Wenn es für dich am einfachsten ist, alle Panels unsichtbar zu machen und dann das gewünschte sichtbar zu machen, dann tu es.

Alternativ die Panels dynamisch erstellen und in einer Liste oder ähnlichen Speichern. Das ganze noch in ne kleine schnucklige Klasse packen, ne Referenz auf das letzte sichtbare Objekt halten und das Ding sollte ein Selbstläufer sein.
Schlüsselbein is offline  
Old 04/16/2014, 14:58   #19
 
elite*gold: 0
Join Date: Oct 2008
Posts: 260
Received Thanks: 143
schlüsselbein wäre ich erfahren dann würde ich einen standpunkt haben - den ich vertrete... . Falls du diesen Thread gelesen hast, wurde das mit dem unsichtbar machen vorgeschlagen - Also habe ich es auf diese Weise verwendet... . Deine Antwort ist für mich so hilfreich wie ne Antwort im Webbereich erstell die Webseite repsonsive dann passt se für jede Bildschirmgröße... . Merkste was fehlt? Das wie - welche Möglichkeiten, Beispiele... .

Es wäre nett wenn du auf meine Fragen antwortest und nicht was in den Raum wirfst.
Wenn du deinen Vorschlag besser erläuterst wäre dieser eventuell tatsächlich hilfreich gewesen... . So kann ich nicht wircklich was damit anfangen... . Den Inhalt dynamisch austauschen ist das Ziel - mach´s halt als "hilfreiche" Antwort hilft mir nicht wircklich... .
Andreas9 is offline  
Old 04/16/2014, 15:11   #20
 
Schlüsselbein's Avatar
 
elite*gold: 0
Join Date: Feb 2013
Posts: 1,137
Received Thanks: 869
Normalerweise reichen diese Stichworte. Auch wenn man aus dem Webbereich kommt, sollte man Suchmaschinen verwenden können, oder nicht?


Hier ein unvollständiges Beispiel (allerdings in C++ geschrieben, sollte aber zeigen, was ich meine):
Code:
#include <iostream>
#include <memory>
#include <vector>

struct panel{ bool visible; panel() : visible(false){} }; // panel des framework
class form{};	// form des frameworks
using panel_ptr = std::unique_ptr<panel>;

class panel_manager
{
private:
	std::vector<panel_ptr> panels_;
	form& form_;

	// -1 = errorzustand, letztes sichtbares objekt gelöscht, liste sortiert etc.
	// muss dann noch behandelt werden
	int last_;	

public:
	panel_manager(form& f) : form_(f), last_(-1)
	{

	}

	void new_panel()
	{
		panel_ptr p(new panel());
		// p->set_parent(f)
		// set height, width blabka

		panels_.push_back(std::move(p));	// panel zur liste hinzufügen
	}

	bool set_visible(int index)
	{
		if(index < 0 || index >= panels_.size())
			return false;

		if(last_ != -1)
		{
			panels_[last_]->visible = false;
		}

		panels_[index]->visible = true;
		last_ = index;

		return true;
	}
	
	void print()
	{
		for(auto& p : panels_)
		{
			std::cout << (p->visible ? "True" : "False") << std::endl;
		}
	}
};

int main()
{
	form f;
	panel_manager p(f);

	for(int i = 0; i < 20; ++i)
	{
		p.new_panel();
	}
	p.set_visible(5);
	p.set_visible(7);
	p.set_visible(12);
	p.print();
}
Schlüsselbein is offline  
Old 04/24/2014, 11:22   #21



 
Serraniel's Avatar
 
elite*gold: 2222
The Black Market: 204/1/0
Join Date: May 2010
Posts: 6,851
Received Thanks: 5,106
Hab sowas ähnliches für meine Programme teilweise:
Mach dir auf die Form nen Panel, da wird alles reingeladen immer.

Das was darein geladen wird machst du jeweils ein UserControl für. Das was als erstes darein geladen wird beim Programmstart heißt bei mir z.B. PnlMain. Das Container Panel wo es drin angezeigt wird heißt PnlFrame.

Alle Usercontrols bekommen einen Konstruktor nach dem Beispiel.
Code:
 public partial class PnlMain : UserControl
    {
        FrmMain frm; //FrmMain ist die Form in der ich alles darstelle

 public PnlMain(FrmMain _frm)
        {
            InitializeComponent();
            frm = _frm;
        }
}
Zudem habe ich Buttons in den Usercontrols die den Inhalt wechseln. Sieht dann so aus:
Code:
frm.ChangePanel(new PnlCreateConfig(frm)); //PnlCreateConfig ist ein weiteres UserControl mit selben Konstruktor
In deiner Form brauchst du nun noch die ChangePanel Methode:
Code:
 public void ChangePanel(Control con)
        {
            PnlFrame.Controls.Clear();
            PnlFrame.Controls.Add(con);
        }
Ich hoffe ich hab jetzt nichts vergessen dabei
Serraniel is offline  
Reply

Tags
austausch, c#, forms, multi, windows


Similar Threads Similar Threads
[HELP] refine_proto Upp-ID Bereiche
11/07/2012 - Metin2 Private Server - 3 Replies
Hey @ all mit den id's in der refine_proto kann man festlegen ob man Sachen beim normalen Schmied, oder beim OT Sura usw uppen kann! Kann mir jemand bitte die Bereiche posten, von wo, bis wo man bei welchem Schmied, bzw NPC uppen kann!? Kind regards Luki
Druid Cat Form -> FireLands Cat Form
08/01/2011 - World of Warcraft - 2 Replies
Hallo Leute, hat jemand die Möglichkeiten mir eine Tauren Katze zur Firelands Katze zu swappen - sofern dies in 4.2 FIRELANDS noch möglich ist. Wobei die Vergangenheit uns gelehrt hat, das es immer Mittel und Wege gibt. (: http://manaflask.com/images/galleries/scaled_1307 971939_flamecat.jpg LG Windkirsche
Channel/Bereiche - Problem
03/12/2010 - WoW Private Server - 2 Replies
Also habe 2 fragen: 1 Frage: Wie richtet man die Channels ein? Also Allgemein/handel und SucheNachGruppe ist ja nicht Global sondern Lokal. wie stellt man das bei einen Trinity 3.3.2 server ein das es Global wird? Und kommt mir nicht mit das geht ned, sondern das geht und es geht aber ned in der db selber da habe ich schon geschaut:D 2 Frage. In Dalaran ist der bereich Falsch eingestellt. Der Hordlerbereich ist zu groß sodas wenn Allys zum beispiel zu den Pethändler/Flugmeister oder in die...



All times are GMT +2. The time now is 19:19.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.