Es geht nicht um deine btnSave_Click-Methode sondern um Page_Load, poste doch mal bitte deren Code 😉
Der Fehler den du da gepostet hat, sieht aus als käme er von Oracle... hast du denn eine korrekt Datumsstruktur eingegeben?
Lädst du den Seiteninhalt in der Page_Load-Methode? Wenn ja, dann schau mal nach IsPostBack. Habe schon lange keine Webanwendungen gemacht, aber ich glaube es müßte ungefähr so sein:
if(!IsPostBack)
{
// hier kommt die Datenbankabfrage und das füllen der TextBoxen hin.
}
Wenn du es nicht in diese Schleife einbindest sondern direkt ins Page_Load wird das füllen der Datenbank bei jedem Aufruf der Seite aufgerufen, also auch bei dem Klick auf deinen Button 😉 Demzufolge liest er die Daten auch ne aus, füllt diese wieder in die DB und geht dann erst in deine Button-Click-Methode um dann den "alten" Inhalt wieder zu speichern...
ciao Anke
Und was gibt die die MessageBox aus, die du eingebaut hast?
Steht denn da bereits das falsche Datum? (ich nehme mal an ja, oder?)
Es handelt sich um eine Windowsanwendung, oder? Denn sonst könntest du ja keine MessageBox einbauen....
Bei einer Webanwendung würde ich ja sagen das du im Page_Load immer das aktuelle lädst und damit die TextBox überschreibst, aber bei einer Windowanwendung ist das echt merkwürdig...
Das "SELECT @@IDENTITY" kann man nicht immer anwenden, wenn z.B. beide Befehle in einer Transaktion stehen, dann wird dort keine ID ermittelt.
Ich verwende in solch einem Fall nicht die Autowert-Funktion (Access) sondern ich ermittele mir die momentan höchste ID und zähle 1 dazu. Ich erzeuge mir also meinen eigenen Autowert...
Die ID verwende ich dann für beide Datensätze, so wie du es ja auch brauchst.
Selbst wenn in Access für die Schlüsselspalte (PK) Autowert angegeben wurde, kann man die ID einfach abspeichern. Ob das bei Oracle auch geht weiß ich leider nicht...
ciao Anke
Wenn du das Hauptfenster schließen willst, kannst du es ja mal mit Application.Exit versuchen 😉
Wie meinst du das jetzt genau? Möchtest du wissen wie du deine DataTable auliest?
Hier mal ein Codeschnipsel (ungeprüft)
foreach(DataRow row in dataTable.Rows)
{
string col1 = row["Spalte 1"].ToString();
string col2 = row["Spalte 2"].ToString();;
// ... was du dann mit den Variablen, bzw den Werten machst ist ja dann dir überlassen ;-)
}
ciao Anke
OK, klappt dann doch so, ich mußte nur den EventHandler extern definieren, den hatte ich auch im Interface, aber das ist natürlich Quatsch.
Tja kommt davon wenn man überarbeitet ist X(
Hallo Forum,
ich schreibe eine Software für die es Plugins geben soll. Diese Plugins erben jeweils von einem Interface. Das funktioniert auch alles ganz super. Nun soll man aber Einstellungen für die Plugins vornehmen können.
Das ist auch kein Problem, siehe http://www.codeproject.com/csharp/PluginsInCSharp.asp
Nunr will ich aber ein Event feuern wenn ich eine Einstellung an einem Plugin geändert habe. Geht das überhaupt? Wenn ja wie?
Wie kann ich sonst meinem Programm beibringen das es auch eine Änderung im Plugin reagieren soll?
Vielen Dank schon mal,
Anke
Ich habe Wirtschaftsinformatik an einer technischen Fachhochschule studiert und muss sagen das ich sehr zufrieden damit bin.
Ich habe im Praktikum und die Zeit danach und während des Diploms in einer großen Firma Intranetanwendungen mit ASP.NET (C#) entwickelt. Nach der Diplomarbeit habe ich dann nebenbei an einem Projekt eine WIndowsapplikation erstellt (meine 1. überhaupt). Es folgten nebenbei ein paar kleine Tools, wie z.B. ein Tool zur Arbeit mit dem Active Directory unter Win 2003 Server.
Seit März arbeite ich jetzt in einer kleinen Softwarebude (2 Mann-Betrieb). Es macht auch richtig dollen Spaß. Wir entwickeln eine Software über die ich natürlich nichts weiter sagen darf 😉
Dabei programmiere ich hauptsächlich mit C# und im moment auch teilweise mit VB.NET, was ja teilweise ganz schön anders ist.
Ich habe mein Hobby wie viele andere hier zum Beruf gemacht 8)
Springt er denn überhaupt in die SelectedIndex-Changed Methode rein. Es kann ja sein das du zwar das Item markierst, aber das Event nicht geworfen wird...
So ein Problem habe ich bei einem anderne Control (UserControl) auch gerade. Er slektiert zwar das Item aber es wird kein Event geworfen und somit füllt er dann die TextBoxen nicht...
Wie wäre es mit einer ArrayList?
Ich finde die sehr komfortabel 😉
Ich hatte so ein ähnliches Problem auch schon einmal. Nur das mein Programm mehrere Sprachen hat (deutsch / englisch) und die MessageBox demzufolge angepasst werden sollte. Ich habe in einem Buch dann Code gefunden, wie man das machen kann... Mann kann dort den Text für Ja, Nein, Ok.... festlegen. Ich habe den Code jetzt aber nicht hier.
Habe so auf die Schnelle das hier beim Googeln gefunden:
Nein Warnungen gibt es nicht. Ich kann ja auch normal Debuggen, aber es nervt mich halt dass es immer da steht. Ich habe das bei vielen Projekten.
Hmm, also ein Fehlercode steht da nicht. Nur der Text den ich kopiert habe...
Ich habe auch nichts gefunden um die Ausgabe zu erweitern oder ähnliches.
ciao Anke
Ich wußte nicht genau wo ich es posten soll, aber ich dachte "Rund um die Programmierung" passt am ehesten 😉
Ich habe mal eine allgemeine Frage. Beim Debuggen im VS.NET stehen in der Aufgabenliste immer Einträge, wie:
Die Abhängigkeit "ImageComboBox" wurde nicht gefunden.
Kann man die Einträge irgendwie weg bekommen? Es passiert zwar weiter nichts, aber ich fände es schöner, wenn meine Aufgabenliste leer wäre 😁
ciao Anke
Damit habe ich mich auch schon rumgeärgert 😁
Hierm al mein Code der bestens funktioniert 😉 Ich validiere gegen eine DTD
/// <summary>
/// Überprüft ob das XmlDocument-Objekt, welches übergeben wird,
/// oder im Dokument enthaltenen Document Type Definiton.
/// </summary>
/// <param name="doc">XmlDocument welches zu Validieren ist</param>
public void Validate(XmlDocument doc)
{
try
{
// Erstellt einen XmlValidatingReader zum Validieren der Datei.
XmlValidatingReader vr = new XmlValidatingReader(doc.InnerXml, XmlNodeType.Document, null);
// Setzt den ValidationType auf DTD.
vr.ValidationType = ValidationType.DTD;
// Bindet einen ValidationEventHandler an den XmlValidatingReader.
vr.ValidationEventHandler += new ValidationEventHandler(ValidationHandler);
// Liest die Datei aus und überprüft diese.
while(vr.Read());
// Schließt den XmlValidatingReader wieder.
vr.Close();
}
catch(Exception ex)
{
// Hier den Fehler abfangen ;-)
}
/// <summary>
/// Dient zur Überprüfung, ob das XML-Dokument gültig ist.
/// </summary>
/// <param name="sender">System Value</param>
/// <param name="args">System Value</param>
private void ValidationHandler(object sender, ValidationEventArgs args)
{
// Hier den Validierungsfehler abfangen ;-)
throw new ArgumentException("Validierungs Fehler: " + args.Message);
}
Hmm, ja das tue ich wohl. Weiß aber auch nicht wie ich es sonst lösen könnte.
Anfangs hatten wir (also mein Kollege und ich) die UserControls direkt in der XXX.dll aber da kamen gleich ganz komische Fehlermeldungen bei raus... deswegen haben wird die Controls in extra DLLs gepackt. Ich weiß nicht mehr wie die Meldungen lauten, das müßte ich erst noch einmal wiederholen...
Ich hatte nach den Meldungen gegoogelt aber nichts gefunden 🙁
Wie würdest du es denn machen? Beide UserControls verwenden jeweils die XXX.dll ...
Diese Meldung erscheint:
Microsoft Development Environment
Das Objekt mit der ID 108 implementiert die IObjectReference-Schnittstelle, für die nicht alle Abhängigkeiten aufgelöst werden können. Mögliche Ursache sind zwei Instanzen von IObjectReference, die voneinander abhängig sind.
OK
ciao Anke
Hmm, jetzt habe ich mal zuerst das MapControl und dann das GridControl hinzugefügt, beide mit dem selber Stand der XXX.dll, nun kann ich das MapControl, aber nicht das GridControl hinzufügen 🙁
Ich werde mal beide Controls in eine DLL packen und gucken ob das geht. Dazu brauche ich aber erst die neueste Version des MapControls (habe nur ne alte) um das Control mit der neuesten DLL zu kompilieren stöhn.
Da der Kollege momentan nicht da ist, wird das wohl noch ein wenig dauern ...
ciao Anke
Hmm ein anderes Control, das wieder in einer DLL liegt, kann ich aber immer noch nicht hinzufügen.
Microsoft Development Environment
Eine Ausnahme ist aufgetreten, während eine Instanz von Mapping.MapControl erstellt wurde. Die Ausnahme war "Datei- oder Assemblyname 'XXX' oder eine Abhänigkeit davon wurde nicht gefunden.".
OK
Habe die Assembly jetzt mal XXX genannt. Ist die selbe Assembly die auch das GridControl verwendet und dich ich vorhin entfernt habt. Beim hinzufügen des GridControls auf die Form wurde die Assembly automatisch unter "Verweise" hinzugefügt. Wieso erkennt das MapControl dann aber die DLL nicht?
Kann so ein Fehler auch bei Versionskonflikten auftreten? Also wenn die beiden DLLs mit unterschiedlichen Versionen der XXX.dll erstellt wurden??? Das könnte nämlich sein, da dass MapControl ein Kollege programmiert hat...
Irgendwie habe ich es jetzt hingekommen.
Ich verwende in meinem GridControl eine DLL, die ich auch in meiner Anwendung verwende. Diese habe ich jetzt als Verweis rausgenommen, dann das GridControl im Designer hinzugefügt und siehe da, es hat funktioniert!!!
Ich werde die Einstellung von DebugModus "Programm" mal wieder raus nehmen und gucken ob es immer noch geht...
Ich habe jetzt denVerweis zu meinem GridControl unter Verweise entfernt.
Dann habe ich in der ToolBox unter "Eigene Benutzersteuerelemente" mein GridControl hinzugefügt in dem ich die entsprechende DLL ausgewählt habe. Das klappt auch einwandfrei. Wenn ich jetzt das GridControl auswähle, dann passiert einfach mal gar nichts, keine Meldung und nichts X(
Ich werde jetzt das ausprobieren, was du vorhin geschrieben hast, bis jetzt hatte ich leider keine Zeit dazu 😉
Der Monstertruck hat aber 11 ccm 😁 ich glaube es sind sogar 11.5, weiß es gar nicht mehr so genau. Ist von Thunder Tiger 😉
Ich habe ja nicht gesagt das ich deinen Vorschlag nicht ausprobieren will, sondern nur, das es mich wundert das es klappt, wenn ich im Konstruktor der Form das Control einbinde, aber im Designer klappt es nicht. Das finde ich halt komisch, das kann ja kein Fehler am Control sein, oder?
Es kommt ja auch kein Fehler wenn ich das Control im Designer einfüge, es passiert halt einfach nur nichts 🙁
Übrigens habe ich doch so ein schönes rosanes Zeichen neben meinem Benutzernamen, ist das nicht aussagekräftig genug ?( Außerdem habe ich noch nie eine "Er" gesehen der Anke heißt lach
@Norman-Timo
Ich bin doch aber kein "Er" X(
Ich kann das ja mal ausprobieren.
Das komisch ist ja nur, das es einmal bei dem einen Control ging. Und dann halt plötzlich nicht mehr. Ich habe jetzt ein Panel im Designer liegen. Dort füge ich mein UserControl hinzu und setzt Dock auf "Fill". Das geht natürlich auch, ist aber nicht so schön 🙁
Hier mal ein Beispiel:
// Erstellt eine GridControl.
this.gridControlReport = new GridControl();
// Die Werte (Size, Width, ...) des Labels werden für das GridControl kopiert.
this.gridControlReport.Font = this.pnlPlaceHolderControls.Font;
this.gridControlReport.Location = new Point(this.pnlPlaceHolderControls.Location.X, this.pnlPlaceHolderControls.Location.Y);
this.gridControlReport.Size = new Size(this.pnlPlaceHolderControls.Size.Width, this.pnlPlaceHolderControls.Size.Height);
this.gridControlReport.Anchor = this.pnlPlaceHolderControls.Anchor;
this.gridControlReport.Dock = this.pnlPlaceHolderControls.Dock;
this.gridControlReport.Visible = false;
this.gridControlReport.Dock = DockStyle.Fill;
// Fügt das GridControl der Form hinzu.
this.pnlPlaceHolderControls.Controls.Add(this.gridControlReport);
Es sollte hier ja der selbe mechanismus geschehen, wie wenn das Control im Designer hintugefügt wird. Es kommt hier aber keine Exception, also sollte das Control ja korrekt sein, oder?
Ich habe mir ein Usercontrol erstellt, in dem eine TreeView enthalten ist, die spezielle Funktionen hat.
Dieses Usercontrol habe ich in eine DLL gepackt und diese DLL habe ich meiner Anwendung hinzugefügt. Ich kann auch das Usercontrol in die ToolBar einfügen. Wenn ich jedoch das Control im Designer auf meine Form ziehe, dann passiert gar nichts. Es wird nicht angezeigt und es wird auch nichts im Code hinzugefügt.
Das selbe passiert mir auch bei 2 anderen Controls.
Ein Control wurde einmal im Designer angezeigt, nach einer kleinen Änderung jedoch, war das Control verschwunden.... Ich muss die Controly nun immer im Quellcode in die Form einbinden, was nicht gerade so toll ist.
Hat einer eine Idee, wie der Fehler zu Stande kommt und wie man ihn behen kann?
ciao Anke
Hallo myByg
lege Bitte im Designer entsprechende Columns an, also z.B. Dateinname, Erstellt am, und so weiter.
Dann stellst du die Sicht (View) der ListView auf "Details". Deine Einträge fügst du nun wie folgt hinzu:
for(int i = 0; i<10; <++)
{
ListViewItem item = new ListViewItem();
item.Text = "Dateiname";
item.SubItems.Add("08.08.2005");
item.SubItems.Add("500 KB");
this.lvwFiles.Items.Add(item);
}
Habe das ganze jetzt nicht getestet, sollte aber so ungefähr klappen 😉
Für das Beispiel das ich geschrieben habe, müßtest du 3 Columns anlegen...
ciao Anke
Kannst du nicht einfach deine Prograssbar von 0-100 hochzählen und wenn du bei 100 angelangt bist, fängst du halt wieder bei 1 an? Du könntest das ganz ja mit einem Timer realisieren...
ciao Anke
Auf Arbeit und zu Hause nutze ich DSL 6000
Also ich zwar zwar nicht wie ich es jetzt hinbekommen habe, aber nach 100 versuchen hat es nun doch noich geklappt ohne das mein Control überschriebn wird!!!
Trotzdem danke fürs lesen 😉
Soo, jetzt muss ich auch mal diesen alten Thread aufgreifen.
@Schattenkanzler: Hast du eine Lösung für dein Problem gefunden? Bei mir ist es nämlich genauso, dass der Splitter das Controls was rechts daneben ist ein Stück verdeckt. So kann ich das ganze aber leider nicht verwenden X(
Wäre toll wenn einer eine Lösung dazu weiß 😉
ciao Anke
Ein MainMenu im Office2003-Style habe ich bereits gefunden, aber ich suche eine Toolbar. Habe ein brauchbares Tool gefunden, was ich mir mal genauer anschauen werde...
Nein kann ich leider nicht, das Projekt wird unter 1.1 entwickelt und ich habe auch kein 2.0 X(
Darf man fragen ob aus dem Projekt nun noch was geworden ist? Der Beitrag ist ja immerhin schon eine Weile her...
Ich versuche gerade eine Toolbar mit Hellblauem Hintergrund zu erstellen, also so wie in Office 2003. den blauen Hintergrund bekomme ich hin, aber leider sehe ich dann die B uttuns nicht mehr 🤔
Vielleicht kann mir ja jemand helfen?
ciao Anke
Hallo Jan,
das passiert wenn du die Datenbank geöffnet hast, also mit Access und bei die entsprechende Tabelle im Entwurfsmodus geöffnet hast. Kann es sein, das dies der Fall war?
ciao Anke
Nur zur Information, ich habe das Problem jetzt gelöst.
Ich habe mir einfach über die Find-Methode das aktuelle StratagyData-Objekt aus der Collection heraus geholt. Wenn ich dieses Objekt dann an Remove weiter reiche, klappt alles.
Das ist zwar sehr merkwürdig, weil ich zwischendurch rein gar nichts an dem Objekt ändere, sondern nur was daraus auslese, aber ich bin froh wenigstens erst mal eine funktionierende Lösung gefunden zu haben 😉
Kann mich den anderen nur anschließen.
Du willst ja deinen Konstruktor von Außen ansprechen, aber von Außen ist dein Enum überhaupt nicht bekannt. Das erkennt das VS und bringt dir die entsprechende Fehlermeldung 😉
Ich wünsche Euch auch alles gute zum Geburtstag, macht weiter so 😉
probier doch einfach mal:
grid.DataScource = dataSet;
Dann siehst du zuerst deine Tabellenstruktur, kannst dann aber jeweils die einzelnen Tabellen angucken und danach wieder zur "Übersicht" wechseln...
ciao Anke
Hmm, leider wird das Objekt zwischendurch nicht geändert, ansonsten wäre das natürlich ein guter Tipp.
Ich lade beim Starten meiner Form die Collection, die gefüllt wird, in dem alle Strategien aus der Datenbank ausgelesen werden. Daraus wird jeweils ein StrategyData-Objekt erstellt und diese wird der Collection mittels Add hinzugefügt.
Wenn ich nun eine Strategie lösche, will ich sie aus meiner Collection raus nehmen bzw. löschen (das Objekt ist noch das selbe wie vorher, also nicht bearbeitet), damit die Strategie, die im Anschluß halt in der Datenbank gelöscht wird, nicht mehr in der Collection angezeigt wird, da sie ja nicht mehr existiert.
Eine andere Lösung wäre noch das die Collection neu geladen werden kann, was aber unter Umstanden lange dauert....
Hier einmal die Collection:
/// <summary>
/// Speichert die Verweise auf alle geladenen Strategien.
/// </summary>
public class AvailableStrategies : System.Collections.CollectionBase
{
/// <summary>
/// Fügt der Sammlung ein StrategyData-Objekt hinzu.
/// </summary>
/// <returns>Index, an dem das StrategyData-Objekt in der Sammlung eingefügt wurde.</returns>
/// <exception cref="ArgumentNullException">
/// Tritt ein, wenn statt einem Parameter NULL übergeben wurde.
/// </exception>
public int Add(StrategyData strategyToAdd)
{
// Prüft ob statt des StrategyData-Objektes NULL übergeben wurde.
if(strategyToAdd == null)
{
throw new ArgumentNullException("strategyToAdd", "Es wurde kein gültiges StrategyData-Objekt übergeben.");
}
else
{
return this.List.Add(strategyToAdd);
}
}
/// <summary>
/// Löscht das übergebene StrategyData-Objekt aus der Sammlung.
/// </summary>
/// <param name="strategyToRemove">StrategyData-Objekt, welches aus der Sammlung gelöscht werden soll.</param>
/// <exception cref="ArgumentNullException">
/// Tritt ein, wenn statt einem Parameter NULL übergeben wurde.
/// </exception>
public void Remove(StrategyData strategyToRemove)
{
// Prüft ob statt des StrategyData-Objektes NULL übergeben wurde.
if(strategyToRemove == null)
{
throw new ArgumentNullException("strategyToRemove", "Es wurde kein gültiges StrategyData-Objekt übergeben.");
}
// Löscht die Strategy aus der Collection.
this.List.Remove(strategyToRemove);
}
/// <summary>
/// Sucht nach einem StrategyData-Objekt in der Sammlung und gibt dieses zurück.
/// </summary>
/// <param name="strategyID">Guid der Strategie.</param>
/// <returns>
/// Gibt eine StrategyData-Objekt zurück, wenn die Strategie in der Sammlung gefunden wurde.
/// Ist NULL wenn das Objekt nicht gefunden werden konnte.
/// </returns>
public StrategyData Find(Guid strategyID)
{
// Gerneriert ein StrategyData-Objekt welches mit NULL initialisiert wird.
StrategyData toReturn = null;
// Durchläuft die Sammlung der StrategyData-Objekte.
foreach(StrategyData strategyOn in this.List)
{
// Prüft ob die strategyID dieses StrategyData-Objektes
// mit dem übergebenem Parameter überein stimmt.
if(strategyOn.Strategy_ID == strategyID)
{
// liest das momentane StrategyData-Objekt (aus der Foreach-Schleife)
// in die lokale Variable.
toReturn = strategyOn;
break;
}
}
// Gibt das gefundene StrategyData-Objekt zurück.
// Ist NULL wenn das Objekt nicht gefunden werden konnte.
return toReturn;
}
}
Das komplette StrategyData-Objekt zu Posten wäre zu lange. Hier aber mal der Konstruktor-Aufbau:
public StrategyData(string name, string author, string created, string desc, Mapping.MapTypes mapType)
{
// Speichert die übergebenen Parameter in private Variablen.
...
}
Dabei sind die einzelnen privaten Variablen des Objektes durch GET&SET Properties von Außen ansprechbar.
Die Find-Methode benutze ich beim Löschen ja auch überhaupt nicht. Das sollte ja nur mal eine Auflistung sein, was die Klassen für Methoden hat 😉
Beim Löschen übergebe ich direkt ein StrategyData-Objekt.
Ja genau StrategyDataist ein eigenes Objekt. Das hat nur ein paar Propertys wie Name, ID,...
Ich habe in meiner Collection lediglich
*public int Add(StrategyData)
*public void Remove(StrategyData)
*public StrategyData Find(Guid StrategyID)
... wobei die Find-Methode die Collection durchläuft und mein Objekt zurückgibt, wenn es gefunden wird. Wen nichts gefunden wird, wird NULL zurückgegeben.
Ich könnte bei Remove auch die Collection durchlaufen und es mit RemoveAt(Index) probieren, aber das ist ja eigentlich Quatsch weil es ja mit List.Remove genauso funktionieren müßte, oder? Habe auch nicht probiert ob ein RemoveAt funktionieren würde... werde ich gleich mal testen.
Hallo,
ich habe eine Klasse erstellt, die von System.Collections.CollectionBase erbt.
Nun habe ich mir eine Add und eine Remove-Methode geschrieben, die folgendes machen:
public int Add(StrategyData strategyToAdd)
{
return this.List.Add(strategyToAdd);
}
public void Remove(StrategyData strategyToRemove)
{
this.List.Remove(strategyToRemove);
}
Will ich nun ein StrategyData-Objekt aus meine Collection löschen, kommt folgende Fehlermeldung:
Das angegebene Element kann nicht entfernt werden, da es nicht in der Auflistung gefunden wurde.
Ich habe bereits gegoogelt aber nichts zu dieser Fehlermeldung gefunden. Ich habe auch nocht nicht weiter mit CollectionBase gearbeitet.... muss ich noch weitere Methoden implementieren um Remove verwenden zu können?
Ich habe mir auch schon in der Remove-Methode alle Einträge des Collection angezeigt. Das zu löschende Element befindet sich wirklich in der Collection.
Benötßge ich vielleicht noch so etwas wie Contains ???
Vielen Dank schon einmal für Eure Hilfe,
ciao Anke
Falls du wissen möchstest wie du deine ListView mit mehreren Spalten füllst (ist nicht ganz erscithlich was du genau wissen willst), dann hier ein Beispiel.
// Erstellt ein ListViewItem
ListViewItem item = new ListViewItem();
// Füllt das ListViewItem
item.Text = "blabla";
item.SubItem.Add("Spalte 2");
item.SubItem.Add("Spalte 3");
...
// Fügt das ListViewItem der ListView hinzu.
myListView.Items.Add(item);
Ich hofe ich konnte dir damit helfen,
ciao Anke
P.S.: Habe das jetzt per Hand geschrieben, kann also sein das ein kleiner Fehler drin ist, aber im Grunde sollte es so richtig sein...
Hab mal eben nachgeschaut. Also das ist der Code meiner Form:
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Threading;
using System.Timers;
namespace XXX
{
/// <summary>
/// Startlogo welches für 3 Sekunden beim Programmstart eingeblendet wird.
/// </summary>
public class Startlogo : System.Windows.Forms.Form
{
private System.Timers.Timer myTimer;
private System.Windows.Forms.PictureBox PictureBox_Logo;
/// <summary>
/// Erforderliche Designervariable.
/// </summary>
private System.ComponentModel.Container components = null;
/// <summary>
/// Konstruktor.
/// Lädt die Form zur Anzeige der Info über den MineScout.
/// </summary>
public Startlogo()
{
//
// Erforderlich für die Windows Form-Designerunterstützung
//
InitializeComponent();
//
// TODO: Fügen Sie den Konstruktorcode nach dem Aufruf von InitializeComponent hinzu
//
}
/// <summary>
/// Die verwendeten Ressourcen bereinigen.
/// </summary>
protected override void Dispose( bool disposing )
{
if( disposing )
{
if(components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}
#region Vom Windows Form-Designer generierter Code
/// <summary>
/// Erforderliche Methode für die Designerunterstützung.
/// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.
/// </summary>
private void InitializeComponent()
{
System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Startlogo));
this.PictureBox_Logo = new System.Windows.Forms.PictureBox();
this.SuspendLayout();
//
// PictureBox_Logo
//
this.PictureBox_Logo.Image = ((System.Drawing.Image)(resources.GetObject("PictureBox_Logo.Image")));
this.PictureBox_Logo.Location = new System.Drawing.Point(0, 0);
this.PictureBox_Logo.Name = "PictureBox_Logo";
this.PictureBox_Logo.Size = new System.Drawing.Size(480, 640);
this.PictureBox_Logo.TabIndex = 0;
this.PictureBox_Logo.TabStop = false;
//
// Startlogo
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(480, 640);
this.Controls.Add(this.PictureBox_Logo);
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.Name = "Startlogo";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "MineScout Center";
this.Load += new System.EventHandler(this.Form_Load);
this.ResumeLayout(false);
}
#endregion
/// <summary>
/// Wird beim Starten der Form ausgelöst.
/// Es wird ein Timer deklariert, der 3 Sekunden läuft.
/// </summary>
/// <param name="sender">System value</param>
/// <param name="e">System value</param>
private void Form_Load(object sender, EventArgs e)
{
myTimer = new System.Timers.Timer();
myTimer.Elapsed += new ElapsedEventHandler(OnTimer);
myTimer.Interval= 3000;
myTimer.Enabled = true;
}
/// <summary>
/// Beendet die Form nach Ablauf des Timers.
/// </summary>
/// <param name="source">System value</param>
/// <param name="e">System value</param>
public void OnTimer(Object source, ElapsedEventArgs e)
{
//wenn der Server deklariert wurde
if(myTimer != null)
{
//wird wieser gestoppt
myTimer.Stop();
}
this.Close();
}
}
}
Du must soweit ich weiß wirklich erst die Gruppe auslesen und dann die Mitglieder dieser Gruppe. Habe hier leider gerade kein Code, da müßte ich erst zu Hause nachgucken.... aber wie es scheint klappt das Auslesen an sich ja...
ciao Anke
Wie beendest du denn dein Intor-Form? Also ich habe genau sowas bereits mit einem Timer realisiert und wenn du beim Ablauf des Timers die Form mit this.Close(); beendest sollte das auch alles ganz normal klappen...
ciao Anke
Aha, na vielen Dank für diese Information, dann bin ich ja jetzt schlauer 😁