Auf CodeProject gibt es eine gute Komponente:
http://www.codeproject.com/KB/combobox/PickersLib.aspx
Es gibt vordefinierte Picker, aber man kann auch eigene erstellen.
Ich habe es schon benutzt und bin damit zufrieden.
Es ist allerdings nur zum nach unten aufklappen, so weit ich weiß.
Grüße, JasonDelife.
Probiere mal:
cp.CompilerOptions = "/target:winexe /platform:x86 /warn:0 /optimize+ /win32icon:\"" + iconFile + "\"";
Pfadangaben, die Ordner- und/oder Dateinamen mit Leerzeichen enthalten müssen bei der DOS-Konsole ja in Anführungszeichen stehen. Vllt. ist es hier ja auch so.
Grüße, JasonDelife.
Eine Konsolenanwendung bracuht ja wohl kein .NET Framework, oder?
Eine C#-Konsolenanwendung schon.
Es gibt aber Installer, die das erledigen.
Einen, den es auch als Freeware-Variante gibt, heißt "Advanced Installer".
http://www.advancedinstaller.com/
Kannst du ja mal schauen.
//Bisschen zu spät...
Grüße, JasonDelife.
private void Mainform_FormClosing(object sender, FormClosingEventArgs e) {
if(conn.NotDisconnected != false) conn.Disconnect();
}
Anmerkung:
conn ist eine Instanz einer selbstprogrammierten Connection-Klasse,
vom gleichen Programmierer wie der Code.
Grüße, JasonDelife.
Du musst readThread als Klassenvariable definieren. Dann sieht das vllt so aus:
public class AsynchronousSerialPortThings {
bool _continue = true;
Thread readThread;
SerialPort _serialPort;
public void Open() { /* Wie gehabt */ }
public void Read()
{
while (_continue)
{
// Read etc...: _serialPort.ReadLine();
}
}
public void Close() {
_continue = false; // Nächste Iteration verhindern
readThread.Join(); // Auf Beendigung der laufendenden Iteration warten
// Jetzt ist readThread beendet.
_serialPort.Close(); // Serielle Schnittstelle schließen
}
}
Du solltest das mit der Schleife lassen und in der Edit-TextBox das TextChanged-Ereignis abbonieren. Dort kannst du dann mit if prüfen, ob das letzte Zeichen ein NewLine ist und alles anpassen. (BTW: Hat die TextBox nicht Properties, die Zeile und Spalte des Cursors abfragen?).
ACHTUNG:
// Das ist KEIN Vergleich, sondern eine Zuweisung
// Entweder Tippfehler, oder du solltest mal ein C#-Grundlagenbuch lesen
if (itsNotepad.Text = newline) { /* ... */ }
// Es muss so sein (Also zwei '='):
if (itsNotepad.Text == newline) { /* ... */ }
Grüße, JasonDelife.
Kannst du das Objekt nicht serialisieren und dabei den OutputStream in einen CryptoStream einschließen?
Du könntest einen BackgroundWorker nehmen.
Statt while(true) dann while(!bgw.CancelationPending). Dann kannst du beim drücken des Buttons bgw.CancelAsync() aufrufen und schreiben "Wird beendet..." und im Ereignis bgw_RunWorkerCompleted dann schreiben "Pingen beendet.". So hast du nicht das Problem der PingException und kannst nebenbei die BeginInvoke-Aufrufe sparen.
Siehe: MSDN: Der BackgroundWorker
Grüße, JasonDelife.
v_u = Convert.ToInt32(s_t_u);
v_r1 = Convert.ToInt32(s_t_r1);
v_r2 = Convert.ToInt32(s_t_r2);
v_r3 = Convert.ToInt32(s_t_r3);
Ich gehe jetzt davon aus, das s_t_u und so TextBoxen auf einer Form sind.
Der Fehler: Du willst den Text in den TextBoxen in ints konvertieren, nicht die Textbox selbst. Es muss s_t_u.Text (usw.) heißen. Mit dem Property Text frägst du nämlich den Textinhalt der TextBox ab. Das sollte man aber wissen: [Hinweis] Wie poste ich richtig? Punkt 1.1.1.
Zur ComboBox: Ich würde const strings oder ein readonly Array für die Inhalte anlegen, dann führen Vertipper nicht zu Fehlern.
Grüße, JasonDelife.
Das wurde auch schon im Forum diskutiert (-> Suche einfach mal).
Im Prinzip ist es egal.
Grüße, JasonDelife.
Wenn mich nicht alles täuscht kommt als String für das Script raus:
window.open('../TaskPreview/PreviewTask.aspx?TaskID='Irgendwas&LangID=EineSprache, null, width[.....]no );
Es müsste aber doch so sein:
window.open('../TaskPreview/PreviewTask.aspx?TaskID=Irgendwas&LangID=EineSprache', null, width[.....]no );
Also das ' erst am Ende der URL (nach strLngListComplete).
Ich hab mal die letzte Version von zommi gegen Int32.Parse laufen lassen.
zommi's MyParse war ca. 5.8mal schneller (MAX = 10.000.000).
Int32.Parse: 3,5s
MyParse: 0,6s
Wobei für 10 Mio. Iterationen sind 3,5s noch ok (klar 0,6s sind deutlich besser).
Hier mal der Testcode:
// Variablen
Stopwatch stpw = new Stopwatch();
TimeSpan int32Time;
TimeSpan customParseTime;
const int MAX = 10000000;
static readonly string[] numbers = new string[] { "123456789", "1024", "314159", "42", "777" };
// Testcode Int32.Parse
stpw.Start();
for (int i = 0; i < MAX; ++i) {
Int32.Parse(numbers[i % 5]);
}
stpw.Stop();
int32Time = stpw.Elapsed;
stpw.Reset();
// Testcode MyParse
stpw.Start();
for (int i = 0; i < MAX; ++i) {
MyParse(numbers[i % 5]);
}
stpw.Stop();
customParseTime = stpw.Elapsed;
Grüße, JasonDelife.
Das wollte ich euch nicht vorenthalten:
(Methodennamen geändert)
// CHANGE IN V2: Man soll statt DoSth jetzt lieber DoSth2 verwenden
if(false == true) obj.DoSth(...);
obj.DoSth2(...);
Grüße,
JasonDelife.
Environment.NewLine
leifert das Zeilenumbruchszeichen des Betriebssystems zurück (als String).
Hallo Community!
Es ist ja so, das der WinForms-Designer im Visual Studio ein absolutes Layout erstellt,
sprich die Positionen und die Größen alle in Pixeln angegeben sind.
Nun ist s aber so, das dieses Verhalten ja
Das blöde ist, das ich schon viele GUI's so habe und es ein Haufen Arbeit wäre, das alles von Hand mit LayoutContainern und Anchor/Dock zu machen. Deshalb:
Gibt es in Visual Studio (eig. Visual C# Express) eine Option (oder ein externes Tool), die das automatisch erledigt? Außerdem würde mich mal interessieren, wie ihr das Design macht (privat, in der Firma macht das wahrsch. ein Designer).
(Wenns das falsche Forum ist, einfach verschieben -> Bin mir nicht sicher ob es passt)
Viele Grüße und frohe Ostern,
JasonDelife.
Das sind Grundlagen. Bitte beachte: [Hinweis] Wie poste ich richtig? Punkt 1.1 und 1.1.1
string binary = "1001";
int i = Convert.ToInt32(binary, 2);
string hex = String.Format("{0:x}", i);
Ich würde hier mit dem DocumentCompleted-Ereignis arbeiten.
Also für jeden WebBrowser die gleiche Methode und da hochzählen, wenn dann die Anzahl der Browser erreicht ist, die gewünschte Funktion ausführen.
-> Dann wartet er ja auch bis alle Browser die Seite geladen haben?
EDIT:
while (iSyntax.Contains("var[1]"))
Muss das nicht Contains(var[1]) heißen?
Grüße, JasonDelife.
TabControl
->SelectedIndex, SelectedTab
oder SelectTab(int) / SelectTab(string) / SelectTab(TabPage)
Für weitere Infos, siehe: http://msdn.microsoft.com/de-de/library/system.windows.forms.tabcontrol(VS.80).aspx
Grüße,
JasonDelife.
Siehe: MSDN: OpenFileDialog-Klasse
Warum lädst du die Typen nicht aus einem Config-File in das Dictionary?
-> Weil der User (ob mit Absicht oder aus versehen sei dahingestellt) die Datei verändern / löschen könnte.
Immer neu zu kompilieren, wenn etwas dazu kommt, erscheint mir recht blöd.
-> Ja, ist umständlich. Aber bei den MIME-Typen kommen neue nicht so oft hinzu.
Das mit den const string's wäre ne Möglichkeit, aber dazu habe ich im Moment leider keine Zeit.
Grüße,
JasonDelife.
string anwengungsVZ = Environment.CurrentDirectory;
Datei in VS einbinden und in Eigenschaften setzten, dass sie ins Ausgabeverzeichnis kopiert wird.
EDIT: Google hilft... 😉
Grüße,
JasonDelife.
Evtl. auch:
const int SW_MINIMIZE = 6;
Je nachdem, was gewünscht ist.
Siehe: http://www.pinvoke.net/default.aspx/user32/ShowWindow.html
Grüße,
JasonDelife.
Ich denke, du musst statt einem Array eine Liste nehmen, die ein Event der Art EntryAdded zur Verfügung stellt. Vll. geht das auch mit Arrays. Das Problem ist, ich weiß nicht ob es in der FCL eine solche Liste gibt und ob diese vom WinForms-Designer unterstützt wird.
EDIT: Google bemüht: System.ComponentModel.BindingList<T> -> Hat Events AddingNew und ListChanged. Siehe: MSDN: System.ComponentModel.BindingList<T>
Grüße,
JasonDelife.
Audiograbber: http://www.audiograbber.de/
Die Installation ist ein wenig umständlich, weil man erst noch den Lame-MP3-Codec installieren muss, aber dann läuft er gut und stabil. Er nimmt in wave auf und wandelt dann um, aber ich denke das ist nicht so wichtig, oder?
Viele Grüße,
JasonDelife.
Wenn du schreibst
tmp = connectionGeneral;
und dann an tmp etwas änderst, änderst du auch connectionGeneral.
Sobald du tmp mit new etwas zuweist, und dann etwas änderst passiert nix mehr mit connectionGeneral.
tmp = connectionGeneral;
tmp.XY = ""; // Ändert XY in connectionGeneral und tmp
tmp = new Connection();
tmp.XY = ""; // Ändert XY nur in tmp, da es jetzt nicht mehr auf das gleiche Objekt wie connectionGeneral verweist
Das sind aber Grundlagen.
Wie ich das verstehe willst du wissen ob wenn du tmp.XY = "" schreibst, ob das dann in connectionGeneral auch geändert wird.
Also so:
Connection tmp = connectionGeneral; // if mal weggelassen -> ist hierfür egal
tmp.XY = ""; // Setzt auch in connectionGeneral XY auf ""
Wenn Connection eine Klasse ist funktioniert das so.
Könnte es das sein was du suchst?
[gelöst] Betriebssystemweiten Hotkey "bekanntmachen"
Nun aber der WebBrowser stellt die datei korrekt dar? (Sprich kann sie öffnen, weil vorhanden)
Denn wie es aussieht, öffnet DocumentText eine Datei.
System.IO.FileNotFoundException
Alle Pfade richtig? FileNotFoundException heißt ja, dass eine Datei nicht gefunden wurde.
Dieser Fehler wird erzeugt, wenn eine Variable null ist.
Du solltest das vorher per Debugger prüfen und mitteilen.
Momentan sehe ich im Code kein Problem, minimizeBallonInfo wird ja so oder so zugewiesen.
Was für ein Fehler?
EDIT: Millisekunden zu spät 😁
owner wird nicht zugewiesen...
Das nächste mal könntest du einfach den Code im Kopf durchgehen,
vll wäre es dir dann selbst aufgefallen.
(Nicht böse gemeint, nur als Tipp)
Grüße, JasonDelife.
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
int posi = 54; // Du weist einen Festen Wert zu, du musst aber den aktuellen Stanpunkt erfragen: this.textBox1.Location.Y
posi += 1;
this.textBox1.Location = new System.Drawing.Point(212, posi);
}
}
Ich habe einfach mal ein wenig in der Geschichte von mycsharp.de rumgestöbert,
sprich: die ersten Beiträge angeschaut. Dabei ist mir Neues SDK ? aufgefallen. Ich weis nicht, ob es bei euch auch ist, aber seht selbst:
Nur zur Vollständigkeit:
Structs castet man wie Klassen.
MyStruct s = (MyStruct) theObject;
Schau dir mal mScriptable an:
http://www.codeproject.com/KB/system/mScriptable.aspx
Du must string Datei als Klassenweite Variable deklarieren.
Dann kann "Datei" auch in Knopf_Click verwendet werden.
also:
using ...;
class Form1 : Form {
string Datei;
public Form1() {
InitializeComponent();
DataTable Liste = new DataTable();
DateiLaden(out Datei); //hier wird der Dateipfad als String zurückgegeben
Verarb(Datei);
}
}
Ich gehe mal davon aus, das du DSL oder ISDN hast (also eine Dauerverbindung, mit dem Modem würde das Runterladen Tage dauern).
Wahrscheinlich hast du auch eine Firewall (Windows-interne, ZoneAlarm, Kaspersky, G-Data, ...).
Du solltest mal schauen, ob die Firewall den Zugriffsversuch auf das Internet verhindert.
Du könntest die Firewall (im schlimmsten Fall) während der Installation beenden.
Ich hoffe, das hilft dir weiter,
JasonDelife.
Um den Fortschritt in einer ProgressBar darzustellen, musst du die Datei mit einem Reader/Writer kopieren. Dort kannst du dann z.B. alle 1024 Bytes den ProgressBar.Value um 1 erhöhen.
So in etwa: (Achtung: Frei aus dem Kopf)
byte[] data = new byte[1024];
while(reader.Read(data, 0, data.Length) != -1) {
writer.Write(data);
++progressBar.Value;
}
//EDIT: JAck30lena war wohl schneller, trotzdem mal gepostet
Beschreibung:
Ich habe mir die Mühe gemacht (fast) alle Mime-Typen von SelfHTML in einer Klasse MimeTypeProvider bereitzustellen. Da ich nun weiß, wie lästig das ist, dachte ich, dass ich die Klasse hier ins Forum stelle.
Falls jemand Performance-Tipps oder ähnliches hat: Immer her damit!
EDIT: Die Klasse ist nun angehängt (.cs).
EDIT 2: Datei war beschädigt.
JasonDelife.
Schlagwörter: Mime, Mime-Typ
Man kann auch ganz einfach der Page1 im Konstruktor einen Verweis auf das Fenster geben. Ist vl. nicht unbedingt für größere Projekte geeignet (wegen der Übersichtlichkeit).
Im Anhang ist das Beispiel.
Also soweit ich weiß, ist es nicht möglich.
Mit JavaScript würde es funktionieren, ein Fenster zu öffnen und dort den HTML-Code dynamisch hineinzuschreiben.
Frag mich aber bitte nicht wie, ich habe das nur noch wage in Erinnerung.
Vl. kannst du ja "in fenster dynamisch html code schreiben mit javascript" oder so googeln.
Ich hoffe ich konnte dir wenigstens ein bisschen helfen.
Ja, Danke. Jetzt habe ich es verstanden (bin manchmal etwas langsam...).
Wenn das Eingabefenster eine ASP.NET-Seite mit versch. Eingabefeldern ist und du einen Link zum aufrufen hast, benutze
<a href="..." target="_blank">.
Das müsste die Seite in einem neuen Fenster öffnen.
Ja, aber dort sind Links, die zeigen, wie man mit den Sessions Daten für alle Webseiten erreichbar speichern kann.
Es ist dafür, dass die Seite, die das Optionenfesnter zeigt, ja auch "wissen" muss, was der Nutzer nun eingegeben hat. Dafür kannst du dann Sessions benutzten.
Eigentlich ganz einfach:
Session["derOptioenName"] = "dieOption";
string dieOption = Session["derOptioenName"].ToString();
Es geht ja um ASP.NET-Seiten oder? (Stehe grad ein bissl aufm Schlauch)
Soll es denn nur ein Eingabefeld sein oder mehrere?
Hier ist eine Freeware-Klasse die genau das kann: http://mentalis.org/soft/class.qpx?id=5
Erstmal, das von vorhin war für WinForms, aber es geht dir ja um ASP.NET-Seiten?
Für die Sessions siehe: Wert in Server-Zwischenspeicher? [WEB]
Du kannst beim Link das Attribut target="_blank" setzten.
Du kannst auf der ASP.NET-Optionen-Seite die Einagben durch einen Button mit Click-Ereignis validieren und da greifst du dann auf Request.Params["Name_des_Feldes"] zu.
Dann kannst du die Optioen ja in einer Session speichern, so dass sie auf der normalen Seite verfügbar sind.
Komme jetzt ein bisschen (leicht untertrieben 🙂) spät, aber hier ist eine Klasse von mir: MimeTypeProvider
Viele Grüße, JasonDelife.