Ich denke, daß sowohl die IDE als auch SDK Tools auf Funktionen aufbauen, die erst ab W2K verfügbar sind.
Unter WIn98 Software für und mit .NET zu entwickeln halte ich sowieso für Selbstkasteiung. Der Speichermanager ist grottenschlecht, das System ist alles andere als stabil, und debuggen möcht' ich nicht müssen.
Aus eigener Erfahrung: Win98 noch zu unterstützen ist eine Quälerei - das geht zwar mit fleißigem MSDN lesen, fluchen, und Workarounds basteln, aber der Win98-test vor dem Branchen ist imemr noch eine ziemliche Zitterpartie. Leider sind unsere Kunden wesentlich konservativer als der gewöhliche Software-Entwickler.
Hallo abbes,
werde mich in den nächsten paar Tagen mit dem Buch beschäftigen.
mit dem unteren Code scheint es aber dennoch Probleme zu haben.
private void Controls_MouseDoubleClick(object sender, MouseEventArgs e)
{
MessageBox.Show(Button.Text);
}
Kann ich Dir folgenden Code präsentieren habs getestet funzt wunderprächtig
wenn Du auf OLEDB umsteigst siehe ja auch im Code!
this.oleDbConnection1.Open();
DataTable schemaTable = this.oleDbConnection1.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] {null, null, null, "TABLE"});
for(int i =0 ;i<schemaTable.Rows.Count;i++)
{
DataRow dr = schemaTable.Rows[i];
if(dr["TABLE_TYPE"].ToString() == "TABLE")
this.listBox1.Items.Add(dr["TABLE_NAME"].ToString());
}
this.oleDbConnection1.Close();
mfg sclearscreen
so nu is aber gut viel Spass
Du brauchst eine Klassenvariable, die den Namen des aktuellen Knotens speichert (und evtl. noch den Kontext):
(Ich poste mal als C# Code, da ich mich in C++.NET vertun könnte, sollte durch austauschen ein paar . und -> portierbar sein und es geht ja ums Prinzip)
/* In der Klasse */
private string aktElement = "";
/* In der Methode
while(xtr.Read())
{
if(xtr.NodeType == XmlNodeType.StartElement)
{
aktElement = xtr.Name;
}
else if (xtr.NodeType == XmlNodeType.TextElement && aktElement == "title")
{
result = xtr.Value;
}
else if (xtr.NodeType == XmlNodeType.EndElement)
{
aktElement = "";
}
}
Rekursion ist eine Möglichkeit, ist aber nicht unbedingt notwendig.
Rekursion bedeutet für den Computer einen höheren Verwaltungsaufwand, da Zwischenergebnisse gespeichert werden müssen, die hier nicht benötigt werden.
@till_hm:
Der Timer sendet aber nicht den Schliessen-Event! Vielmehr wird in einem Event, welches durch den Timer auslöst wurde, this->Close() aufgerufen, wodurch widerum das FormClosing-Event ausgelöst wird.
Der sender wird wohl in jedem Fall die Form selbst sein.
Ich kenn keine ComboBox, bei der man die Elemente durch drüberhalten des Mauszeigers anwählen kann.
Das geht meiner Meinung nach nur bei nem ListView.
GuenniAtWork
Servus,
das ist das ParentControl...
In seiner ControlCollection liegen die TextBox, ComboBox, Labels etc.
Wenn du den Kram nur auf der Form liegen hast, musst du das als Parent angeben.
mfg
Hellsgore
Hallo,
wie bereits im Titel genannt, möchte ich benutzerdefinierte Spalten im DataGridView verwenden. Das ist ja an sich auch nicht so schwierig, wenn man die Spalten manuell hinzufügt. Ich möchte jetzt aber die Spalten automatisch generieren lassen (DataGridView.AutoGenerateColumns = true;). Wie kann ich hier benutzerdefinierte Spalten verwenden?
Till