Ich habe in C# (WPF) einen TextEditor drin, welcher mit dem Öffnen-Dialog wie als auch Drag & Drop die Datei lädt.
Leider fand ich keine Info, wie eine Datei geöffnet werden kann, wenn die Datei zum Beispiel in die compilierte exe gezogen wird...
Wenn ich die Datei auf die exe ziehe, bleibt der TextEditor leer, aber ich möchte diesen gerne genauso mit den Daten laden können, die mit Öffnen-Dialog und Drag & Drop funktioniert.
Über eine Idee wäre ich sehr dankbar, da viele Anwendungen standardmäßig es können, nur meine Anwendung noch nicht.
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Paderman am .
der komplette Pfad der Datei wird dabei als (erster und einziger) Kommandozeilenparameter übergeben, d.h. lies diesen aus und zeige dann dessen Inhalt an, s.a. Main() and command-line arguments (bes. der Code unter "Command-Line Arguments") sowie Die Argumente von der Kommandozeile?
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Th69 am .
Die Console-Variante funktioniert ja sehr gut mit einer Beispiel.txt -> Beispiel.exe, diese zeigt den Inhalt der Textdatei in der Console ja an, aber wie setze ich es aber so um, dass der Inhalt nicht in der Console ausgegeben wird, sondern in das grafische Steuerelement "TextBox"
("Texteditor" stammt aus AvalonEdit, die für das Syntax highlighting zuständig ist)
Ich habe das Beispiel in meinem Projekt zwar übernommen, nun habe ich unter Projekt-Eigenschaften entweder die "Beispiel.app" oder das "Beispiel.Programm"...
Das Projekt was ich habe ist ja keine Console-Variante, sondern grafisch, nur wie könnte man der grafischen Oberfläche mitteilen, dass auch eine Beispiel.txt -> MeinProjekt.exe in das grafische Steuerelement geladen/angezeigt wird, wie es bereits ja mit Drag & Drop und dem Dialog "Öffnen" funktioniert?
Wenn ich MeinProjekt.exe in der Console starte und dazu eine Beispiel.txt mit anhänge, bleibt die Console ja leer und startet gleich die GUI, aber ohne angehängter Beispiel.txt...
Leider bin ich etwas planlos...
Dieser Beitrag wurde 2 mal editiert, zum letzten Mal von Paderman am .
Ich habe mir aus dem Beispielcode ein Beispielprojekt gebaut und es funktioniert, demzufolge dürfte es in meinem Projekt auch funktionieren demzufolge deckt mein Projekt nun folgendes ab: Datei Öffnen, Drag & Drop und Startup Argumente
Hätte ich zuvor dem korrekten Begriff gehabt, dann hätte ich ja eigentlich was finden sollen
Zumindest gibt es eine Art 2 Varianten dieser Art, einmal für Console und WPF, C#
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Paderman am .
Leider habe ich doch noch eine Frage zu WPF: Startup Argumente verwenden: wie kann ich den Pfad der in set zum Beispiel in einem Steuerelement wie ShowPath.Text = sFolder_Path; angezeigt wird, als Variable ab public MainWindow() verwenden, also außerhalb von public string Startup_Folder_Path? Ich bräuchte den Wert, da noch was anderes ausgeführt werden muss und der übergebene Wert wird dazu benötigt. Leider fand ich noch nichts dazu. Oder anders gefragt, wie könnte der übergebene Wert gespeichert werden, da ich für das Projekt einen Timer verwenden muss, und dieser benötigt dazu den gespeicherten Pfad, der zuletzt per Parameter übergeben wurde...
Teil-Code aus der MainWindow.xaml.cs
public string Startup_Folder_Path
{
get
{
return sFolder_Path;
}
set
{
sFolder_Path = value;
ShowPath.Text = sFolder_Path;
}
}
Vielen Dank
Dieser Beitrag wurde 3 mal editiert, zum letzten Mal von Paderman am .
public partial class MainWindow
{
//--< Privat >--
private String sFolder_Path = "";
//--< Privat >-
//--< Properties >--
public string Startup_Folder_Path
{
get
{
return sFolder_Path;
}
set
{
sFolder_Path = value;
// ShowPath.Text = sFolder_Path; /* Ausgabe bzw. Wert soll außerhalb übergeben werden können */
}
}
//--</ Properties >--
#region ---------< Region: Window >---------
//------< Window >------
public MainWindow()
{
InitializeComponent();
/* folgende Zeile ist nur ein Beispiel, nur bleibt hier sFolder_Path leider leer, da dieser den Wert aus sFolder_Path nicht erhält */
ShowPath.Text = sFolder_Path;
}
//------</ Window >------
#endregion ---------</ Region: Window >---------
In einer neuen Variable wird auch nichts gespeichert...
Leider kenne ich mich damit noch nicht aus
Demzufolge müsste es vermutlich so ablaufen:
Wenn die Anwendung einen Parameter zum Beispiel einer Datei erhält, soll der komplette Pfad, solange die Anwendung läuft, zwischengespeichert werden, da der Inhalt einer Datei in einer TextBox ausgegeben wird, und per Timer wird die Datei neu geladen. Nach Beenden der Anwendung wird der zwischengespeicherte Wert geleert so die Theorie
Dieser Beitrag wurde 6 mal editiert, zum letzten Mal von Paderman am .
MainWindow mainWindow = new MainWindow();
mainWindow.Startup_Folder_Path = start_Folder;
mainWindow.Show();
gesetzt (also nach dem Konstruktor per Setter).
Wenn du jedoch schon im Konstruktor auf diesen Wert zugreifen möchtest, dann übergebe ihn als Parameter:
public MainWindow(string folderPath)
{
Startup_Folder_Path = folderPath;
// ...
}
Aber alles, was du im Konstruktor machen möchtest, kannst du doch auch in dem Setter von Startup_Folder_Path implementieren. Oder warum hast du ShowPath.Text dorthin verschoben?