Usability:
Ich finde ein Tree Menu hier fehl am platz. Besonders irritiert mich das häckchen wenn ich einen Menupunkt auswähle.
Ein "Häckchen im Kästchen" bedeutet für mich noch immer: "gemacht-erledigt". Aber Programminfo aufrufen hat ja nichts mit Erledigt zu tun.
Auch klickt mann auf Abfrage und nichts passiert. Du solltest hier den Klassischen Weg gehen: Menu oben da wo mann es erwartet
Eigenschaften - Von - Nach. Diese Felder sind anwählbar aber nicht beschreibbar. Wenn du Felder hast die mann nicht beschreiben kann dann disable sie. Sprich ein Courser in den Feldern aber keine Möglichkeit diese Felder auszufüllen verwirrt.
Unter Wortlisten gibts ein Progress Balken der aber auf 100% steht. Wenn progess balken dann bitte wieder verschwinden lassen wenn kein Progress mehr stattfindet.
Zum Code:
public class all_wordlists <-- Ist quatsch. Eine Klasse Representiert ein Object und keine Menge. Mal davon abgesehen gibts auch bei C# Styleguides wie Klassen benannt werden sollten.
Zudem leider ein paar Schnitzer entdeckt:
private void SetLanguage(string LanguagePack)
{
words = LanguagePack.Split(new char[] {'|'});
// Set the language
this.lblHeadline.Text = words[0];
this.c1.Text = words[1];
this.c2.Text = words[2];
this.c3.Text = words[3];
this.c4.Text = words[4];
this.btnDelete.Text = words[5];
this.btnRefresh.Text = words[6];
}
Was passiert wenn dein Programm mal abstürzt und eine Zeile nicht komplett geschrieben wurde. Oder anderweitig die Datei aus der du ausliest beschädigt ist?
Wenn in dem betreffenden Teil sich kein array mit 6 Items herauslesen lässt. Dann
schmiert dein Programm ab.
Hier fehlt etwas in dieser Art:
Code:
if(LanguagePack==null )
throw new IrgendwasException("dumm gelaufen");
words = LanguagePack.Split(new char[] {'|'});
if(words.size()<6)
throw new IrgendwasException("file corrupt");
this.lblHeadline.Text = words[0];
Du solltest immer davon ausgehen das irgendwelche Daten kaputt sein können
Ich habe aus test mal eben die Datei Unit 2.LST so verändert das ich einfach cat| rausgeschnitten habe:
nformationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
************** Ausnahmetext **************
System.IO.EndOfStreamException: Über das Ende des Streams hinaus kann nicht gelesen werden.
bei System.IO.__Error.EndOfFile()
bei System.IO.BinaryReader.ReadString()
bei voxtar1_0.all_wordlists.GetWordlists(String diretory)
bei voxtar1_0.all_wordlists.All_wordlistsLoad(Object sender, EventArgs e)
bei System.Windows.Forms.UserControl.OnLoad(EventArgs e)
bei System.Windows.Forms.UserControl.OnCreateControl()
bei System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
bei System.Windows.Forms.Control.CreateControl()
bei System.Windows.Forms.Control.ControlCollection.Add(Control value)
bei voxtar1_0.MainForm.TreeMenuAfterSelect(Object sender, TreeViewEventArgs e)
bei System.Windows.Forms.TreeView.OnAfterSelect(TreeViewEventArgs e)
bei System.Windows.Forms.TreeView.TvnSelected(NMTREEVIEW* nmtv)
bei System.Windows.Forms.TreeView.WmNotify(Message& m)
bei System.Windows.Forms.TreeView.WndProc(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Geladene Assemblys **************
mscorlib
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
voxtar1_0
Assembly-Version: 1.0.2357.25970.
Win32-Version: 1.0.2357.25970.
CodeBase: file:///C:/chris/temp/voc/Voxtar%201.0/voxtar1_0.exe.
----------------------------------------
System.Windows.Forms
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
----------------------------------------
System
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll.
----------------------------------------
System.Drawing
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
----------------------------------------
System.Configuration
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll.
----------------------------------------
System.Xml
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll.
----------------------------------------
mscorlib.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll.
----------------------------------------
System.Windows.Forms.resources
Assembly-Version: 2.0.0.0.
Win32-Version: 2.0.50727.42 (RTM.050727-4200).
CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
----------------------------------------
************** JIT-Debuggen **************
Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
Konfigurationsdatei der Anwendung oder des Computers
(machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
Zum Beispiel:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
Ausnahmen an den JIT-Debugger gesendet, der auf dem
Computer registriert ist, und nicht in diesem Dialogfeld behandelt.
^-- Fehlermeldung. Hier wäre es schöner das der Benutzer eine Fehlermeldung bekommt mit der er was anfangen kann, wie eben: "Unit 2.LST ist korrupt. Kann diese Datei nicht parsen" oder sowas
