Laden...

Forenbeiträge von DeveloperX Ingesamt 462 Beiträge

27.04.2006 - 21:10 Uhr

Hallo!

Wenn ich mich nicht täusche, wird die Methode unterstrichen.

mfg

27.04.2006 - 19:40 Uhr

Hallo!

Was mir noch aufgefallen ist, dass wenn man Task-Eigenschaften direkt in der Tabelle ändert, kommt man nicht mehr aus dem Edit-Modus heraus, ausser man klickt auf einen Spalten-Titel. Wäre toll wenn man mit Enter die Änderungen speichern und mit ESC die Änderungen verwerfen könnte (und jeweils danach der Edit-Modus verlassen wird).

mfg

27.04.2006 - 17:54 Uhr

Hallo!

Weil .NewRow() keine statische Methode ist! this.NewRow() müsste funktionieren.

mfg

26.04.2006 - 17:06 Uhr

Hallo!

Erfahrungen mit diesem Thema habe ich leider nicht, aber ich bin mal zufällig auf diese Seite gestolpert:

http://www.microsoft.com/winlogo/default.mspx

mfg

25.04.2006 - 21:42 Uhr

Hallo!

So wie ich das verstanden habe, hat er keinen Multi-User-Betrieb sondern für jede Installation eine eigene Datenbank. Wenn sich die Access-Datenbank in einem anderen Order befindet (z.B. Programm ist in anderen Ordner installiert worden) muss dementsprechend der ConnectionString anders sein. Somit braucht er keine Server-Datenbank.

mfg

25.04.2006 - 15:23 Uhr

Hallo!

Meinst du vielleicht Control.FromHandle(handle) oder Form.FromHandle(handle)?

mfg

25.04.2006 - 14:15 Uhr

Hallo!

In deinem Code fehlt ein MeinReader.Read() und zwar nacht dem ExecuteReader()!

mfg

24.04.2006 - 22:45 Uhr

Diese Variante würde ich heute auch nehmen, aber vor ein paar Monaten war ich schon froh, dass ich die GroupBox so zweckentfremden konnte 😉

24.04.2006 - 17:59 Uhr

Hallo!

Eine GroupBox kann man auch wunderbar dafür missbrauchen. Einfach den Text auf "" setzen und die Höhe soweit wie möglich verkleinern 😉

mfg

23.04.2006 - 00:44 Uhr

Hallo!

Bei Form-Events ist ja meistens (oder immer? k.A.) der sender-Parameter das Control, deren Event gefeuert wird. Also würd ich den Sender auf Form casten und das DialogResult auslesen.

mfg

22.04.2006 - 12:03 Uhr

Die Google-Suche nach "Visual C++ Express" hätte dir als erstes Ergebnis die Produktseite gebracht und als zweites Ergebnis direkt die Download-Seite ...

http://msdn.microsoft.com/vstudio/express/visualc/

http://msdn.microsoft.com/vstudio/express/visualc/download/

mfg

19.04.2006 - 20:17 Uhr

Hab ich vor einigen Wochen schonmal gemacht, echt erstaunlich was das bringt 😉

Ich habe die Geschwindigkeit nicht erwähnt, weil m.E. die Typ-Sicherheit das wichtigste daran ist.

mfg

19.04.2006 - 18:56 Uhr

Ich weiss zwar nicht, ob es dir bei deinem konkreten Problem hilft aber bei CodeProject gibt es jetzt übrigens einen Artikel names "Detecting Application Idleness" ... kam per Newsletter und schaut ganz gut aus.

mfg

19.04.2006 - 17:25 Uhr

Der Vorteil an Generics ist die Typ-Sicherheit. D.h. du kannst in deinem Fall nur RssChannel-Objekte in die Liste aufnehmen. Es kann also nicht versehentlich z.B. ein string in der Liste enthalten sein.

mfg

19.04.2006 - 17:01 Uhr

Für ICQ muss man ja auch explizit den Port 5190 bzw. die Applikation bei der firewall freischalten.

Das mit Port 80 (sprich http-port) geht ja auch nur deshalb, weil 99.9% der Benutzer Internet-Surfen wollen und diesen Port somit ohnehin freigeschalten haben.

mfg

19.04.2006 - 16:49 Uhr

Hallo!

Es kann sein dass ich mich irre, aber wenn ich mich recht erinnere, kann man mit dem HttpChannel Firewalls umgehen. Wäre irgendwie auch logisch, da bei der Firewall sowieso der Port 80 freigeschalten ist um im Internet zu surfen etc. Hab leider gerade keine Doku zur Hand die das verifizieren könnte.

mfg

19.04.2006 - 11:12 Uhr

Für Logos und Bilder für Websiten benutze ich Fireworks 8.0 (gefällt mir sehr gut).

19.04.2006 - 11:08 Uhr

Hallo!

Es hilft auch, TreeView.Font auf bold zu setzen (oder was anderes, es soll halt breiter sein, als die in den Nodes verwendete Font, z.B. FontSize auf einen ziemlich hohen Wert stellen) und den einzelnen Nodes ein Font zuweisen.

mfg

18.04.2006 - 18:39 Uhr

Hallo herbivore!

klar ist es besser, den string in einen int umzuwandeln, aber ich habe ja nicht beantwortet wie man den Vergleich am besten macht, sondern lencker´s frage, was die 2 bei ToString("X2") bedeutet. Desweiteren habe ich noch erläutert, warum das X in diesem Fall groß geschrieben gehört.

mfg

18.04.2006 - 16:55 Uhr

ja, 2 steht für mindestlänge und das grosse X gibt an, dass die Buchstaben gross geschrieben werden (z.B. 7F). Ein kleines x würde bedeuten dass die Buchstaben klein geschrieben werden (z.B. 7f).

mfg

16.04.2006 - 19:58 Uhr

Hallo Herbivore

Damit wird sein String ja auch nicht kleiner, da er ja anstatt pe_gebdatum='"+strGebDat ja trotzdem pe_gebdatum = @gebdatum schreiben muss. Aber die Lösung mit SqlParametern ist auf jeden Fall zu empfehlen.

Hallo lorenz1980!

Du kannst einfach folgendes machen:

string str_update = "UPDATE person SET pe_famname='"+tbx_famname.Text+
"', pe_vorname='"+tbx_vorname.Text+
+"', pe_gebdatum='"+strGebDat+
//usw.(am Ende halt nen Strichpunkt nicht vergessen!

// Oder mit SqlParameter:
string str_update = "UPDATE person set "+
"pe_famname = @pe_famname, "+
"pe_vorname = @pe_vorname, "+
// usw

mfg

15.04.2006 - 15:44 Uhr

Hallo!

Also ich habe so eine ähmliche Frage schonmal gestellt und arbeite nun mit dem HelpStudio Lite (ist enthalten im Windows SDK, falls ich mich nicht irre).

Was man dazu eigentlich braucht:
Artikel in der MSDN erstellen

mfg

15.04.2006 - 12:43 Uhr

Hallo!

Die Lösung ist zwar nicht ganz optimal (die ListView flackert kurz und das SelectedIndexChanged-Event wird zu oft aufgerufen) aber es funktioniert:

		private List<int> selectedindices = new List<int>();
		private void listView1_MouseClick(object sender, MouseEventArgs e)
		{
			ListView lv = (ListView)sender;
			ListViewItem lvi = listView1.GetItemAt(e.X, e.Y);

			if (selectedindices.Contains(lvi.Index))
				selectedindices.Remove(lvi.Index);
			else
				selectedindices.Add(lvi.Index);
			lv.SelectedIndices.Clear();
			foreach (int i in selectedindices)
				lv.SelectedIndices.Add(i);
		}

mfg

15.04.2006 - 09:50 Uhr

Egal welche Tastenordnung eine Tastatur hat, so ein Panic-Button wär manchmal nicht schlecht 😉 :

Zu finden unter: http://www.getdigital.de/index/0xa6

13.04.2006 - 15:13 Uhr

Hallo!

Einfach alle Zeilen durchiterieren und bei jeder zeile die spalten durchiterieren:

foreach (ListViewItem lvi in listview.Items)
{
InDateiSchreiben(lvi.text);
foreach (ListViewSubitem subitem in lvi.SubItems)
    InDateiSchreiben (";" + subitem.Text;
InDateiSchreiben(Environment.NewLine)
}

mfg

10.04.2006 - 22:09 Uhr

Hallo!

Form2 form2 = new Form2();

form2.Show();
//oder modal:
form2.ShowDialog();

mfg

06.04.2006 - 18:50 Uhr

hm .. ja stimmt, das "true" war ein fehler meinerseits, hab nicht ganz mitgedacht (bzw. so wie es aussieht, gar nicht 😉 )

06.04.2006 - 13:12 Uhr

Also ich bleib bei Excel. Reicht für meine Anforderungen komplett aus (größtenteils nur ich als Entwickler, manchmal auch maximal 5 andere)! Ein paar bedingte Formatierungen und Formeln und schon bin ich zufrieden 😉

05.04.2006 - 23:43 Uhr

Hallo!

DateSet bzw. DataTable hat ein Property names CaseSensitive. Einfach auf True setzen und schon klappts!

mfg

05.04.2006 - 20:28 Uhr

Hallo!

eventuell hilft Column.Width auf 0 zu setzen!

mfg

05.04.2006 - 18:30 Uhr

Und zwei weitere Fragen habe ich auch noch:

  1. Wie kann man die Schriftgröße (in Points) auf Pixel umrechnen? Oder ist das das selbe?

  2. Wieso ist das fette Wort ("Produkte") im unteren HTMLLabel um ein Pixel nach oben verschoben, obwohl die gleiche y-Position verwendet wird? Ist ein fettes Wort höher als ein normales?

Vielen Dank schonmal im Vorraus!

mfg

05.04.2006 - 16:03 Uhr

Hallo Commuity!

Also ich bastel mir gerade einen HTMLRenderer (z.B. für HTMLLabel, HTMLButton etc; ich weiss, das gibt es schon, aber ich machs eigentlich nur wegem dem Lerneffekt und weil ich bei meinem Programm keine Fremdkomponenten einbauen will). Ich bin zwar noch nicht weit, jedoch bin ich gerade auf was aufmerksam geworden.

Ich habe ein HTMLLabel und ein normales Label untereinander platziert und den gleichen Text und das das gleiche Font einstellt:
Aber die Schrift beim normalen Label ist gestreckt bzw. die von meinem Control gestaucht (siehe Bild).
Aber jenachdem welche Schriftart eingestellt ist, mal mehr oder weniger.

Schrift oben: Segoe UI
Schrift unten: Courier New

Anmerkung: der Fehler, dass die Fett-Schrift beim HTMLLabel etwas zu weit entfernt ist, ist ein Fehler meiner Render-Methode, kann also ausser acht gelassen werden. Die roten Striche, sollen veranschaulichen wie sehr sich die beiden Text unterscheiden.

Die 2. Zeile in meinen Controls wird jeweils in einem Rutsch gezeichnet, also nicht wort- oder zeichenweise.

Woran liegt das gestreckte bzw. gestauchte Zeichnen, und wie kann man das ein- bzw. ausstellen?

Edit: sorry, ich vergesse immer wieder, dass es für sowas ja das "Grafik und Sound"-Forum gibt!

mfg DeveloperX

05.04.2006 - 11:34 Uhr

Hallo!

ListView.Columns bringt Spaltenüberschriften (dafür muss aber ListView.View = Details gesetzt sein).

Ab .net 2.0 gibts auch noch ListView.Groups

mfg

05.04.2006 - 07:58 Uhr

Original von dragi
man soll doch, wenn man Klassen entwickelt, keine GUI in diese Klasse aufnehmen, richtig?

Es müsste richtigerweise lauten: "wenn man in Schichten entwickelt, keine GUI-Elemente in die BusinessLogic-Klassen aufnehmen" bzw. daraus resultierend, dass die BusinessLogic-Klassen die GUI-Klassen nicht kennen (Umgekehrt natürlich schon: Die GUI kennt die BL)!

mfg

05.04.2006 - 07:45 Uhr

Hallo!

Erstell dir ein Event, das bei jedem Schleifendurchlauf gefeuert wird. In deiner GUI fängst du dann dieses Event und aktualisiert dementsprechend die ProgressBar.

mfg

01.04.2006 - 19:42 Uhr

Die oben genannte Lösung ist nicht ganz sauber, da trotzdem noch das Dock-Problem besteht, habe es jedoch gerade behoben. Falls Interesse besteht, werde ich den benötigten Code posten, sobald ich mit dem Testen fertig bin!

01.04.2006 - 18:35 Uhr

Hallo!

Ich stehe gerade vor genau dem gleichen Problem. Gibt es dazu bereits eine Lösung?

Edit:
Hab mir gerade eine Lösung gebastelt, die einfach die Location der Childs korrigiert:

		void GroupPanel_ControlAdded(object sender, ControlEventArgs e)
		{
			CorrectChildLocation(e.Control);
			e.Control.LocationChanged += new EventHandler(Control_LocationChanged);
		}

		void Control_LocationChanged(object sender, EventArgs e)
		{
			CorrectChildLocation((Control)sender);
		}

		private void CorrectChildLocation(Control c)
		{
			if ((c.Location.Y <= header.Height)
				c.Location = new Point(c.Location.X, header.Height + 1);
		}

Wobei header das Control ist, das immer sichtbar ist und ich vor dem ControlAdded-Eventhandler eingefügt habe (mit Dock = DockStyle.Top).

Funkioniert einwandfrei!

mfg

31.03.2006 - 16:25 Uhr

Hallo!

Einfach mittels GDI+ selber zeichnen!

mfg

28.03.2006 - 23:15 Uhr

Hallo!

Lau borland-Seite gibts C# Builder nur für Windows. Für Mac´s kann man mono bzw. DotGnu verwenden!

mfg

28.03.2006 - 18:05 Uhr

hallo herbivore!

ich habe die englische Version von VS 2005 Professional Edition (inkl. der zugrhörigen MSDN) und bei mir ist CancelEventArgs vorhanden. Ebenfalls vorhanden sind unzählige Seiten zu System.ComponentModel!

Edit: ich hab die .net version 2.0.50727. Eventuell hängt es damit zusammen?!

mfg

28.03.2006 - 14:49 Uhr

Hallo!

ich gehe mal davon aus, dass du einen DataLayer hast. Und desweiteren, dass alle Commands dasselbe Connection-Objekt benutzen. Also einfach den ConnectString von diesem einem Connection-Object ändern.

mfg

27.03.2006 - 16:48 Uhr

hallo!

wenn du .net 2.0 benutzt: int.TryParse(..)

mfg

27.03.2006 - 13:18 Uhr

Hallo!

es wäre hilfreich wenn du die Message der Exception angeben würdest:

 catch (Exception e) { MessageBox.Show(e.Message); }

mfg

26.03.2006 - 23:33 Uhr

Hallo!

ich kanns leider nicht testen, aber eventuelle mit Bounds anstatt von WorkingArea?

Oder die X-Position des Fenster auf PrimaryScreen.Bounds+10 und dann this.WindowState = FormWindowState.Maximized;

mfg

21.03.2006 - 20:39 Uhr

Hallo!

So in etwas könnte das gelöst werden:

class Frage
{
   string frage;
   string antwort1;
   string antwort2;
   string antwort3;
   string antwort4;
   short richtige_antwort;
   bool gestellt = false;

   public void StelleFrage()
   {
      // ... irgendwas machen um die Frage dem Benutzer zu stellen..
      gestellt = true;
   }
}
...
List<Frage> leichte_fragen = new List<Frage>();

Frage f = new Frage();
f.frage = "hier die frage";
f.antwort1 = "antwort1";
f.antwort2 = "antwort2";
f.antwort3 = "antwort3";
f.antwort4 = "antwort4";
f.richtige_antwort = 2;

leichte_fragen.Add(f);

f = new Frage();
f.frage = "...";
//..usw

int i = zufallszahl zwischen 0 und 24 ermitteln;
if (leichte_frage[i].gestellt)
   ... neue zufallszahl
..bis .gestellt == false;

leichte_frage[i].StelleFrage();

der untere teil des Codes ist lediglich Pseudo-Code.

mfg

20.03.2006 - 15:55 Uhr

Hallo!

Die ZufallVariable01 gilt nur innerhalb der geschweiften Klammern.


int ZufallVariable01 = 0;
do
{
        Random random01 = new Random();
        ZufallVariable01 = random01.Next(1, 25);
        Meldungsfenster.Text = ZufallVariable01.ToString();
}
while (leicht[ZufallVariabe01] = Zufallspruefer);

Somit gilt die ZufallVariable01 auch ausserhalb der Klammern und das while-Statement weiss, was gemeint ist!

mfg

18.03.2006 - 23:54 Uhr

dort ist ganz normal firefox eingetragen, hat aber nichts mit meinem problem zu tun, weil ich ja die HTML-Datei nicht mit dem Standard-Programm öffnen will sondern ausschliesslich mit Word. Aber trotzdem vielen Dank an dich!!

Aber jetzt gehts ganz wunderbar mit der CommandLine zum öffnen. Es hat nur nichts angezeigt, weil in der CharSet-Definition ein Syntax-Fehler drinnen war!

18.03.2006 - 23:23 Uhr

Hallo!

ich habe eine HTML-Datei die ich per Programm mit Word öffnen will.
Zum Testen hab ichs mal in der Command-Line mit "c:\programme...\winword.exe c:\text.html" probiert. Das geht jedoch nicht. Word startet zwar, aber mit einer leeren Datei.

Erstelle ich nun ein Word-Dokument namens 'c:\text.doc' und starte wie oben, aber mit anderem Dateinamen halt, geht es wunderbar. Man kann also so keine HTML-Dateien öffnen. (Übrigens: Rechtsklick auf html-Datei -> Öffnen mit --> Word ==> geht ebenfalls wunderbar)

Leider gibt es auch keinen Start-Parameter für die winword.exe, der dies bewerkstellen würde (zumindest habe ich keine gefunden). Weiss nun jemand von euch wie man das machen könnte?

Vielen Dank im Vorraus!

mfg, DeveloperX

18.03.2006 - 10:51 Uhr

hallo!

du kannst ja in die vorgefertigte text-datei platzhalter einfügen (z.B. %vorname% ,%nachname% ), diese datei in einen sting einlesen, die platzhalter mit replace(..) mit den daten ersetzen und den string in eine andere datei wieder schreiben.

mfg

07.03.2006 - 20:35 Uhr

Hallo!

Wenn ich dich richtig verstanden habe, soll das UserControl den gesamten Platz im Panel bekommen? Dann hilft folgendes:

uc.Dock = DockStyle.Fill;

Ansonsten bekommst du das mit Anchors hin!

mfg