Danke schön für die schnelle Antwort, es hat natürlich wunderbar geklappt 🙂
Morgen Leute,
Goolge hat nicht geholfen und im Forum konnte ich nichts passendes finden.
Ich will durch ein Click-Ereigniss auf meiner Form, WordPad starten und eine *txt Dtei laden, habe aber keine Vorstellung wie ich da ansetzen soll.
Wäre nett wenn mir jemand helfen könnte!
MfG ToFac3
HI Junky,
private void Wasauchimmer_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter/Return)
Textbox.Text = Convert.ToString(Ergebnis);
}
MfG ToFac3
Jo, danke aber das mit neben einander legen und drücken mach ich echt die ganze Zeit, oder besser, ich habs so gemacht, aber danke für den Tipp und das mit 2,3E-04, daran hab ich auch nicht gedacht, hmm.
Aber die '/'-Taste geht, mit Shift+7 gehts nicht da ich diese Kombination nicht abfange(ich weis einfach nicht wie ich 2 tasten aufeinmal abfange). Aber ich seh schon da ist noch einiges zu tun.
Thx für deine Umfangreiche Hilfe
MsG ToFac3
Huhu, also ich habe die falschen zeilen aus KeyDown einfach gelöscht, wie gesagt war wphl ein vergehen, alles funktionier auch ohne die doofen Zeilen 🙂.
Zum 2ten Problem, danke dass du mich darauf hingewiesen hast, das lässt sich aber leicht beheben indem du
private void btn_0_Click(object sender, EventArgs e)
{
if (tbxeingabe.Text != "Teilen durch 0 unmöglich.")
{
if (tbxeingabe.Text != "0," || userkomma) // (|| userkommma) einfach dazu packen und schon funktioniert das ganze reibungslos :D
MfG ToFac3
Big THX für die schnelle Antwort@sheitman, ich werds sofort ausprobieren. Und dass der Code unsauber ist, ist klar da ich erst vor kurzen mit c# angefangen hab und von ereignishandlern usw. noch nicht viel weis, aber vielen dank für deine Hilfe die ist Super.
EDIT: Du hattest natürlich recht ich habs ausprobiert und es läuft wunderbar, DANKE
SCHÖN und was
if (leoschen)
tbxeingabe.Clear();
leoschen = false;
da zu suchen hat weis ich auch nicht, habs wohl noch vom ersten versuch dort vergessen 🤔 schäm
MfG ToFac3
Nein das tut es nicht, hier kommt das Ding 8)
EDIT: Wie gesagt mit der Maus rumklicken kein Problem, mit der Tastatur gibs ärger!
EDIT2: Wäre nett wenn du deine Meinung dazu schreiben könntest oder verbesserungsvorschläge 😉
Der Fehler ist imma noch da, ich habe zwar jetzt einege sachen in methoden ausgelagert aber der Fehler kommt trozdem, in der textbox steh was drin(eine Zahl) er zeigt aber an dass sie leer ist und deshalb gibs fehlermeldung beim umwandel, ich weis auch net weiter, muss wohl in 3 wochen meinen Dozent mal fragen ob er weiter weis.
PS: Ich weis natürlich das ö=oe ist und nicht umgekehrt 😁
Das ist nur für alle Fälle, die Umlaute schreibe ich immer aus, sprich ö=eo usw. 😜
Danke für die Tipps@sheitman und nin, werds gleich mal alles ausprobieren!
Ja da hast du recht 23, ist keine Zahl, aber 23, ist das selbe wie 23,00 o.ä und daher wird das komma beim addieren, subtrahieren usw vernachlässigt und ist nicht mehr da im Ergebnis (23, + 10, = 33) und daher gibs in dem sinne keine Fehlermeldung!
Ein Komma kann im Ergebnis nur dann entstehen wenn ich z.b. (12,5 + 10 = 22,5) sowas mache, und daher prüfe ich ob komma schon da ist und wenn nicht füge ich eins hinzu, iwe es eben der WinXP-Rechner auch macht!
Auserdem sag ich doch dass es reibungslos funktioniert wenn ich mit der maus auf die buttens klicke, also muss es, ich weis auch nicht wo liegen ?! 🙁
Aber ja, er zeigt ja auch an(wenn ich mit der maus über tbxeingab.text fahre) dass das Feld leer ist, was aber nicht der Fall ist da steh auf jeden fall eine Zahlm, oder hab ich im Code irgenwo ein Fehler den ich nicht sehe?
PS: Danke für alle Antworten
MfG ToFac3
Die textbox is readonly=true, mann kann da entweder per mausdruck auf die entsprechende Buttons oder per tastatur was eingeben, aber ich lasse nur Zahlen durch, von daher weis ich auch nicht was das soll, wie gesagt da steht zu dem Zeitpunkt eine Zahl drin, ne ganz normale Zahl.
MfG ToFac3
Ok jetzt weis ich das ich damit teste ob umgewandelt werden kann, nur hilft mir das leider nicht weiter, dann kommt zwar ein False und die Fehlermeldung gibs nicht mehr
aber es hilft mir nicht weiter, denn eigentlich steh ja ne Zahl in der Textbox und wenn ich aber durch Enter mit .PerformClick() (wenn ich das zweite mal Enter drücke wohl gemerkt) hinspringe kommt ein Fehler oder jetzt eben kein Fehler mehr sonder dann passier halt nichts. Er sollte aber addieren, was er auch tut wenn ich mit der Maus klicke!
Hilfe!!
MfG ToFac3
Aber die MSDN fühlt sich schon vergewaltigt so offt wie ich drin bin :evil:
Natürlich kucke ich in die Hilfe aber die is gar nicht so hilfreich, zumindestens nicht immer.
Wäre nett wenn du mir sagen könntest was genau TryParse() macht und wie ich damit umwandle, da ich Anfänger bin!
Zu diesem Zeitpunkt kann da eine belibiege Zahl stehen(ich habs ausgetestet) aber er zeigt an dass das Feld leer ist und deshalb gibs beim Umwandeln das Problem
PS: Aber sonst habe ich keine Probleme mit dem Umwandeln.
Morgen zusammn, ich habe folgendes Problem, ich habe für die Schule ein 1 zu 1 Nachbau des WinXP-Calculators und es funktioniert alles soweit ganz gut, nur wenn ich über KeyDown die Tastatur abfange und dann mit .PerformClick() sachen ausführe kommt folgender Fehler:
Aufruf (z.B.)
switch (e.KeyCode)
{
case Keys.Enter: btn_gleich.PerformClick();
break;
}
Das Click-Ereignis das wunderbar funktionier wenn ich mit der Maus auf den Button Klicke
private void btn_gleich_Click(object sender, EventArgs e)
{
if (tbxeingabe.Text != "Teilen durch 0 unmöglich.")
{
char[] kommatest = new char[tbxeingabe.Text.Length];
string ergtemp = ""; //zwischenspeichern des ergebnis
bool komma = false; //ob komma vorhanden ist
switch (operand)
{
case '+':
{
if (!leoschen || mread || einsdurchx)
zweitezahl = Convert.ToDouble(tbxeingabe.Text);
ergebnis += zweitezahl;
ergtemp = Convert.ToString(ergebnis);
kommatest = ergtemp.ToCharArray();
for (int i = 0; i < ergtemp.Length; i++)
if (kommatest[i] == ',')
komma = true;
if (komma)
tbxeingabe.Text = Convert.ToString(ergebnis);
else
tbxeingabe.Text = Convert.ToString(ergebnis) + ",";
break;
}
case '-':
{
if (!leoschen || mread || einsdurchx)
zweitezahl = Convert.ToDouble(tbxeingabe.Text);
ergebnis -= zweitezahl;
ergtemp = Convert.ToString(ergebnis);
kommatest = ergtemp.ToCharArray();
for (int i = 0; i < ergtemp.Length; i++)
if (kommatest[i] == ',')
komma = true;
if (komma)
tbxeingabe.Text = Convert.ToString(ergebnis);
else
tbxeingabe.Text = Convert.ToString(ergebnis) + ",";
break;
}
case '/':
{
if (!leoschen || mread || einsdurchx)
zweitezahl = Convert.ToDouble(tbxeingabe.Text);
if (zweitezahl != 0)
{
ergebnis /= zweitezahl;
ergtemp = Convert.ToString(ergebnis);
kommatest = ergtemp.ToCharArray();
for (int i = 0; i < ergtemp.Length; i++)
if (kommatest[i] == ',')
komma = true;
if (komma)
tbxeingabe.Text = Convert.ToString(ergebnis);
else
tbxeingabe.Text = Convert.ToString(ergebnis) + ",";
}
else
tbxeingabe.Text = "Teilen durch 0 unmöglich.";
break;
}
case '*':
{
if (!leoschen || mread || einsdurchx)
zweitezahl = Convert.ToDouble(tbxeingabe.Text);
ergebnis *= zweitezahl;
ergtemp = Convert.ToString(ergebnis);
kommatest = ergtemp.ToCharArray();
for (int i = 0; i < ergtemp.Length; i++)
if (kommatest[i] == ',')
komma = true;
if (komma)
tbxeingabe.Text = Convert.ToString(ergebnis);
else
tbxeingabe.Text = Convert.ToString(ergebnis) + ",";
break;
}
}
leoschen = true;
userkomma = false;
gleichZeichen = true;
mread = false;
einsdurchx = false;
if (btn_gleich.Focused)
tbxeingabe.Focus();
tbxeingabe.DeselectAll();
}
else
System.Media.SystemSounds.Beep.Play();
}
(Is keine Profi-Arbeit ich weis 😄)
Der Fehler der kommt wenn ich das 2te mal mit Enter da rein gehe(beim ersten druck auf Enter kommt also kein fehler, erst beim 2ten)
Wäre nett wenn jemand helfen könnte.
So Leute ich habs endlich raus bekommen falls es euch noch interessiert 😁
Den verfügbaren physikalischen Speicher bekommt ihr aus
Win32_OperatingSystem -------> TotalVisibleMemorySize
Danke ane alle die mir helfen wollten 👍
Moin Leute, jetzt ist ein neues Problem aufgetaucht, ich habe jetzt
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_PhysicalMemory");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_PhysicalMemory instance");
Console.WriteLine("-----------------------------------");
Console.WriteLine("Caption: {0}", queryObj["Caption"]);
}
}
catch (ManagementException e)
{
MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
und irgendwie bekomme ich nichts ausgegeben. Die Frage ist also wie bekomme ich nun den Richtigen Wert als ausgabe. Ich habe es mit
Form.lblspeicher.Text=("Caption: " + queryObj["Caption"].ToString());
und
MessageBox.Show("Caption: {0}", queryObj["Caption"].ToString());
versucht, aber es landet nichts im Label/MessageBox, was kann ich da machen ?(
Danke für den Tipp sheitman, aber Win32_LogicalMemoryConfiguration und Win32_PhysicalMemory sagen mir nichts da ich anfänger bin und wenn keiner sonst ne Antwort weis werd ich mir das mit Google mal antun 🤔
EDIT: Oder kann mir jemand schnell ne kurze Anleitung posten wie ich aus dem WMICodeCreator den Arbeitsspeicher rausbekomme ?!
EDIT2: Ich habs jetzt mehr oder weniger rausbekommen wie das ding funzt, aber der WMICodeCreator verwendet 'using System.Management;' und da mekert C# an der Stelle, kann da jemand weiter helfen ?(
EDIT3: OK hab das mit den Verweisen jetzt hinbekommen und danke für den Tipp nin das Tool ist echt geil!
Morgen Leute, sry dass es so lang gedauert hat, konnte das ganze aber am wochenende gar net test, nu hab ich das aber und ich komm mit dem
WMI Code generator gar nicht zu recht. Weis denn niemand wie ich, den noch zu Verfügung stehenden, Arbeitsspeicher noch auslesne kann?
Sry aber ich habe jetzt gemerkt dass es doch nicht überienstimmt. Wenn man bei WinXP den Rechner(Calculator) startet und oben Auf Fragezeichen geht ----> Info, zeigt er den verfügbaren physikalischen Speicher an, und der stimmt nicht mit dem berechneten aus diesem Code nich überein. Und ich brauche aber den, den der Windows-Rechner anzeigt, weis da jemand weiter?
string[] drives = System.Environment.GetLogicalDrives();
System.IO.DriveInfo driveInfo = new System.IO.DriveInfo("c");
long free = driveInfo.AvailableFreeSpace;
EDIT: Danke für den Tipp herbivore
MfG ToFac3
Danke schön für die schnellen Antworten es funktioniert wunderbar 👍
MfG ToFac3
Hallo Leute, ich brauche für ein Projekt den verfügbaren physikalischen Speicher, ich will nur wissen wieviel noch zu verfügung steht und die Zahl dann auf einer Form auszugeben(Ausgabe stellt kein Problem da).
Wenn jemand weis wie man den physikalischen Speicher auslesen kann, ich bin für alle Vorschläge offen.
MfG ToFac3
Ich bins wieda, habs jez hinbekommen, danke schön Friedel es hat wunderbar geklappt.
Danke auch an herbivore deine Lösung hat natürlich auch geklappt, obwohl ich es zuerst nicht kapiert habe.
EDIT: Das Problem bei Application.Idle ist, das der Inhalt trozdem erst markiert wird und verschwindet die Markierung, sodass ein Blink-Effekt entsteht.
MfG ToFac3
Hallo Friedel und danke für die Antwort, aber ich weis mal wieder nicht weiter, sag mir doch bitte wie genau das geht, ich bin bis:
Shown += new EventHandler(Form1_Shown);
gekommen weis aber nicht was ich jez damit machen muss und vor allem wo genau das geschehen soll, in Form1_Load() ?
Und die Hilfe hat mal wieder nicht weiter geholfen!
MfG ToFac3
Danke für die schnelle Antwort herbivore, ich verstehe aber nich ganz wo ich Application.Idle genau einsetzen soll, ich hab mich durch die Hilfe durchgekämpft und da steh auch kein Bsp. drin. Könntest du es bitte noch mal für die Anfänger genauer erklären.
Danke im voraus ToFac3 👍
Hallo Leute, ich bin ein anfänger was c-sharp betrifft und habe ein problem. Ich habe ein
1 zu 1 nachbau des WinXP-Rechners für die schule erstellt und habe folgendes problem,
wenn ich mein programm starte ist der Inhalt meiner Textbox immer markiert!
private void Form1_Load(object sender, EventArgs e)
{
this.tbxeingabe.Focus();
this.tbxeingabe.Text = "0,";
this.tbxeingabe.DeselectAll();
if (m_Caret != null)
{
m_Caret.Dispose();
}
m_Caret = new CCaret(this.tbxeingabe, (Bitmap)Image.FromFile("caret.jpg"));
}
ch schreibe da also "0," rein und schalte den Caret aus, und dann ist der Inhalt, also '0,', markiert und hat den Fokus. Ich habe auch versucht den Fokus auf ein Button zu legen oder sonstwohin, das ding markiert mir immer den Inhalt und
private void Form1_Load(object sender, EventArgs e)
{
this.tbxeingabe.Focus();
this.tbxeingabe.DeselectAll();
funktioniert auch nicht.
Wenn jemad helfen kann, wäre ich sehr dankbar.