Zum Inhalt springen

MMazi

Mitglieder
  • Gesamte Inhalte

    38
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von MMazi

  1. nun habe ich in Projektantrag angegeben, dass eine Oberfläsche gegeben wird aber wird ja nicht benötigt und muss ich wohl diese Angabe als Projektantrag abweischung angeben. ich habe ja keine Zeit gehabt ein anderes Projekt zu realisieren. nun dieses Projekt hat auch irgendwie seine Komplexität , da ich ganze Json String von APIs serialisieret und deserialisiert habe und eine Funktion müsste ich schreiben für alle APIs Aufrufe um bestimmte teile von API nicht ständig wiedrholt zu werden.
  2. Ok dachte ich ja, aber warum hat ihk den Projektantrag genehmigt ? da habe ich gschrieben, dass so ein Problem gibt im Betrieb und der Programm dieses Problem so löst, dass die dokumente von Netzwerkordner in DMS bringt. danke trotzdem für deine Antwort
  3. Fachinformatiker Anwendungsentwicklung. ja das wurde mir vom Praktikumbetrieb als Abschlussprojekt gegeben.
  4. Hallo Alle zusammen, ich habe ein Projekt von meinem Praktikum Betrieb bekommen, das meine Meinung nach nicht ausführlich genug ist für Abschlussarbeit!! Allerdings wird dadurch ein bestehendes Problem im Betrieb gelöst. Das Programm läuft im Hintergrund und bringt eingescannte Dokumente die durch Multifunktionsdrucker eingescannt worden und in einem Netzwerk Ordner gespeichert worden durch drei API Aufrufe, die von Softwarehersteller definiert ist, in firmeninternes Digital Management System rein. Es gibt keine GUI und Datenbank wird in DMS Automatisch erzeugt. Danke für eure Meinungen
  5. Sorry , ja stimmt hab wenig infos geschrieben, Whiz-zard hast du recht der Programmhatte Automatisch geschlossen letztendlich habe andere Lösung dafür genommen. Danke für die Antworten
  6. Hallo zusammen kann man für Das Abschlüssprojekt das Layout von einem Tool eins zu eins mit bisschen Veränderung übernehmen?
  7. Hallo zusammen Ich habe in meiner Anwendung die ich geschrieben habe diese Code in App.Xaml.cs hinzugefügt um ihn nur einmal Starten lassen leider Erfolglos. habt Ihr eine andere Lösung o. was mache ich hier Falsch? Danke für die Antworten using System; using System.Collections.Generic; using System.Configuration; using System.Data; using System.Drawing; using System.Linq; using System.Threading.Tasks; using System.Threading; using System.Windows; namespace TimeRecorderPro { /// <summary> /// Interaktionslogik für "App.xaml" /// </summary> /// public partial class App : Application { private Mutex mutex = null; //protected override void OnStartup(StartupEventArgs e) protected override void OnStartup(StartupEventArgs e) { bool createdNew; //Mutex mit eindeutigem Namen (bspw. GUID) mutex = new Mutex(true, "77aca664-ba25-4964-bc05-d7ba57030720", out createdNew); if(!mutex.WaitOne(TimeSpan.Zero, true)) //Prüfung, ob Mutex schon länger aktiv ist.. { //Mutex ist gerade gestartet.. base.OnStartup(e); } else { ////Mutex läuft bereits längere Zeit.. MessageBox.Show("Anwendung läuft bereits!"); ////Anwendung beenden Environment.Exit(0); } } } }
  8. Danke KeeperOfCoffee ja bin dabei alles zu erlernen
  9. Hallo zusammen Ich wollte die Inhalte einer Liste ( ObservableCollection) lokal in einer Textdatei speichern. die ganze ist in WPF die ohne MVVM geschrieben weden musste. using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Collections.Specialized; using System.Windows; using System.Windows.Controls; namespace TimeRecorderPro { /// <summary> /// Interaktionslogik für MainWindow.xaml /// </summary> public partial class MainWindow : Window { public DateTime startTime; public DateTime endTime; public Timer _currentTimer; public void Anfunk() { Timers.Add(_currentTimer); btnStart.Content = "Start"; } void Löschen() { txtStart.Text = ""; txtEnde.Text = ""; } public void BemerkungEinfuegen(string str) { _currentTimer.Bemerkung = str; } private ObservableCollection<Timer> Timers; public MainWindow() { InitializeComponent(); Timers = new ObservableCollection<Timer> { }; lstNames.ItemsSource = Timers; } private void btnStart_Click(object sender, RoutedEventArgs e) { if ((string)btnStart.Content == "Start") { _currentTimer = new Timer(); txtStart.Text = _currentTimer.Start.ToString("HH:mm:ss"); btnStart.Content = "Ende"; } else { _currentTimer.Ende = DateTime.Now; txtEnde.Text = _currentTimer.Ende.ToString("HH:mm:ss"); _currentTimer.Dauer = _currentTimer.Ende - _currentTimer.Start; txtEnde.Text = _currentTimer.Ende.ToString("HH:mm:ss"); Bemerkung bemerkungsdialog = new Bemerkung(); bemerkungsdialog.Owner = this; bemerkungsdialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; bemerkungsdialog.ShowDialog(); /* Bemerkung bemerkungsdialog = new Bemerkung(_currentTimer); bemerkungsdialog.Owner = this; bemerkungsdialog.WindowStartupLocation = WindowStartupLocation.CenterOwner; bemerkungsdialog.ShowDialog(); */ Anfunk(); Löschen(); } } private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; this.Visibility = Visibility.Hidden; string testtext = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext); objWriter.WriteLine(Timers.ToString()); } private void lstNames_SelectionChanged(object sender, SelectionChangedEventArgs e) { } } public class Timer { public Timer() { Start = DateTime.Now; } public DateTime Start { get; set; } public DateTime Ende { get; set; } public TimeSpan Dauer { get; set; } public string Bemerkung { get; set; } } } hier wird eine neue Textdatei erstellt, danach dachte ich ja die lIste erstmal durch iterieren , aüssere Schleife iteriert die Items und innere Schleife die Clumns dann die ganze mit dem Code in Text datei zu speichern, wäre ich dankbar für eure Antworten wie der Code in dieser Stelle aussehen musste. private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; this.Visibility = Visibility.Hidden; string testtext = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext); objWriter.WriteLine(Timers.ToString());
  10. MMazi

    Warnung CS0252

    Dankeschön für die Antworten , läuft ja damit ganz gut if((string)btnStart.Content == "Start")
  11. MMazi

    Warnung CS0252

    Hi Ich habe diese Codezeile Fehler: Warnung CS0252 Möglicher unbeabsichtigter Referenzvergleich; Um einen Wertevergleich zu erhalten, geben Sie auf der linken Seite 'string' ein. private void btnStart_Click(object sender, RoutedEventArgs e) { if (btnStart.Content == "Start") { _currentTimer = new Timer(); txtStart.Text = _currentTimer.Start.ToString("HH:mm:ss"); btnStart.Content = "Ende"; } else { // Objektvariablen, die nicht initialisiert sind und daher auf nichts verweisen: DateTime Ende = new DateTime(2020, 11, 10, 0, 0, 0); _currentTimer.Ende = DateTime.Now; _currentTimer.Dauer = _currentTimer.Ende - _currentTimer.Start; txtEnde.Text = _currentTimer.Ende.ToString("HH:mm:ss"); Timer.Add(_currentTimer); //private void btnEnde_Click(object sender, RoutedEventArgs e) //{ } foreach (Control tbx in Controls) { if (tbx.GetType() == typeof(TextBox)) { ((TextBox)tbx).Clear(); } } btnStart.Content = "Start"; } wäre ich dankbar für die Antworten
  12. ja hast du recht der neue Button Code ausschnitt musste ich auskommentieren, hatte ich ja nur ausprobiert. " Außerdem setzt du den Text von txtStart erst auf Datetime.Now und dann auf string.Empty...ist doch klar, dass die TextBox leer ist. " das hat funktioniert.. Danke dir
  13. das soll eine vorstuffe sein bevor ich mich mit WPF Richtig tief beschäftige, das Tool sollte erstmal ohne Verwendung von MvvM geschrieben werden dann danach muss ich das Tool mit MvvM realisieren. ist es überhaupt möglich , dass ich die Datetime auch in Textbox durch klicken auf Button angebe?
  14. Hallo Alle zusammen, wie kann ich die Datetime bzw. Text durch klicken auf Button in Textfeld angeben, ich habe soweit geschafft diese in datagridview anzugeben nun musste auch die gleiche Datetime in Textbox gleichzeitig erscheinen. musste ich auch dazu sagen, will erstmal alles ohne MVVM realisieren. Danke für die Antworten XAML Code: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="*" /> </Grid.RowDefinitions> <StackPanel Grid.Row="0" Grid.Column="0" Margin="5,5,5,5"> <TextBlock x:Name="lblStart" Text="Start" /> <TextBox x:Name="txtStart" /> <TextBlock x:Name="lblEnde" Text="Ende" /> <TextBox x:Name="txtEnde" /> <Button x:Name="btnStart" Grid.Column="0" Width="100" Height="20" Margin="5,5,5,5" Click="btnStart_Click" Content="Start" /> </StackPanel> <ListView x:Name="lstNames" Grid.Row="0" Grid.Column="1" Margin="5,5,5,5"> <ListView.View> <GridView x:Name="grdNames"> <GridViewColumn Width="100" DisplayMemberBinding="{Binding Start}" Header="Start" /> <GridViewColumn Width="100" DisplayMemberBinding="{Binding Ende}" Header="Ende" /> <GridViewColumn Width="50" DisplayMemberBinding="{Binding Dauer}" Header="Dauer" /> <GridViewColumn Width="150" DisplayMemberBinding="{Binding Bemerkung}" Header="Bemerkung" /> </GridView> </ListView.View> </ListView> </Grid> C# Code : using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace TimeRecorderPro { /// <summary> /// Interaktionslogik für MainWindow.xaml /// </summary> public partial class MainWindow : Window { //Globale Variabeln public DateTime startTime; public DateTime endTime; private ObservableCollection<Timer> Timer; public MainWindow() { InitializeComponent(); Timer = new ObservableCollection<Timer>() { }; lstNames.ItemsSource = Timer; } private void btnStart_Click(object sender, RoutedEventArgs e) { this.startTime = DateTime.Now; txtStart.Text = startTime.ToString("HH:mm:ss"); Button btnstart = new Button(); btnstart.Content ="Start"; this.btnStart.Inlines.Add(btnstart); Timer.Add(new Timer() { Start = txtStart.Text, Ende = txtEnde.Text }); txtStart.Text = string.Empty; txtEnde.Text = string.Empty; } } public class Timer { public string Start { get; set; } public string Ende { get; set; } public int Dauer { get; set; } public int Bemerkung { get; set; } } }
  15. MMazi

    Datenbindung WPF

    Hi.. cool Danke dir
  16. MMazi

    Datenbindung WPF

    Danke für die Antworten wollte noch gleich hier fargen , wie kann man das Fenster solution Explorer in Visual Studio 2019 öffnen? oder soll einr neue Frage daraus werden? Danke
  17. Hallo alle zusammen, wie kann ich das Fenster solution Explorer in Visual Studio 2019 öffnen? Danke
  18. MMazi

    Datenbindung WPF

    ja stimmt Aber mal klein und vereinfacht ertsmal anfangen ich danke dir vielmals
  19. MMazi

    Datenbindung WPF

    WPF halt, Achso Ok dann muss ich mich erstmal mit MVVM befassen , Danke dir erstmal
  20. MMazi

    Datenbindung WPF

    Hallo Alle zusammen, Ich habe eine Zeitefassungstool geschrieben mit Windowsform. Das Tool funktioniert wie folgt: 1. Start Button ->wird die Statzeit in der Textbox und in erste Spate von dgv eingetragen 2. Ende Button -> wird die Endzeit in der textbox eingetragen , gleichzeitig wird die Differenz in der Textbox und die Spalte Dauer in dgv eingetragen und zeitgleich wird einen Dialogfenster geöffnet um die Bemerkungen zu schreiben 3. beim schliessen von Hauptfenster, wird die Daten in einer Textdatei geschrieben und in einem neuen Lokalen Ordner Lokal abgelegt. das hat ja alles geklappt nun um alles noch besser zu machen bin dabei alles mit WPF zu ersetllen. ich habe soweit das Layout erstellt ( Bilder in Anhang ) , nun hat sich herausgestellt, dass ganz andere Datenbindung in wpf gilt als Windowsform. habt Ihr eine Idee wie ich diese Vorhaben realisieren kann, und wie die Daten aus Textfelder und Button in dgv spalten eingetragen werden kann ? Ich danke euch im voraus. Der Code in windows Form: Form1.cs: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Text; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Configuration; using System.IO; namespace Zeiterfassungstool { public partial class Form1 : Form { //Globale Variabeln public DateTime startTime; public DateTime endTime; string v1 = System.Configuration.ConfigurationManager.AppSettings["k1"]; string v2 = System.Configuration.ConfigurationManager.AppSettings["k2"]; string v3 = System.Configuration.ConfigurationManager.AppSettings["k3"]; public Form1() { InitializeComponent(); btnStart.Visible = true; btnStart.Text = "Start"; } //--------------------------------------START------------------------------------------------ private void btnStart_Click(object sender, EventArgs e) { if (btnStart.Text == "Start") { this.startTime = DateTime.Now; textBox2.Text = startTime.ToString("HH:mm:ss"); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[0].Value = textBox2.Text; btnStart.Text = "Ende"; } else { this.endTime = DateTime.Now; textBox3.Text = endTime.ToString("HH:mm:ss"); int n = dataGridView1.Rows.Count - 1; dataGridView1.Rows[n].Cells[1].Value = textBox3.Text; TimeSpan dauer; dauer = endTime.Subtract(startTime); int m = dataGridView1.Rows.Count - 1; dataGridView1.Rows[m].Cells[2].Value = dauer.TotalHours.ToString("0.00"); //--------Bemerkungsdialog---------- Bemerkung bemerkungdialog = new Bemerkung(); bemerkungdialog.StartPosition = FormStartPosition.CenterScreen; if (bemerkungdialog.ShowDialog() == DialogResult.OK) { int d = dataGridView1.Rows.Count - 1; dataGridView1.Rows[d].Cells[3].Value = bemerkungdialog.getBemerkung(); } //----------Löschen------------------- foreach (Control tbx in Controls) { if (tbx.GetType() == typeof(TextBox)) { ((TextBox)tbx).Clear(); } } btnStart.Text = "Start"; } } //--------------------------------------ENDE------------------------------------------------ //-----------------------------------Speichern------------------------------------------- //------------------------------------SizeChanged. NotifyIcon------------------------------------------- private void Form1_SizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { notifyIcon1.Icon = SystemIcons.Application; } this.ShowInTaskbar = false; } private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { this.WindowState = FormWindowState.Normal; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { string testtext = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext); int count = dataGridView1.Rows.Count; for (int row = 0; row < count; row++) { int columncount = dataGridView1.Columns.Count; for (int column = 0; column < columncount; column++) { objWriter.WriteLine(dataGridView1.Rows[row].Cells[column].Value.ToString()); } } objWriter.Close(); DialogResult dialog = MessageBox.Show("Möchten Das Programm wirklich beenden?", "Programm beenden", MessageBoxButtons.YesNo); if (dialog == DialogResult.No) { e.Cancel = true; } } } } Dialogfenster" Bemerkung" : using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Zeiterfassungstool { public partial class Bemerkung : Form { // Interne Zugriff private string Speichern = ""; // Externe Zugriff public string Form1 { get { return Form1 ; } } public Bemerkung() { InitializeComponent(); } private void btnspeichern_Click(object sender, EventArgs e) { Speichern = textBox1.Text; } public string getBemerkung() { return textBox1.Text; } private void textBox1_TextChanged(object sender, EventArgs e) { } } } App config : <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <appSettings> <add key="k1" value="Pfad zum Speichern angeben " /> <add key="k2" value="v2" /> <add key="k3" value="v3" /> <add key="ClientSettingsProvider.ServiceUri" value="" /> </appSettings> </configuration> Der Code in WPF: Hauptfenster von Programm ( MainWindow.xaml:1 ) Window x:Class="Grid.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Grid" mc:Ignorable="d" Title="MainWindow" Height="300" Width="600"> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition Width="14*"/> <ColumnDefinition Width="15*"/> <ColumnDefinition Width="15*"/> <ColumnDefinition Width="15*"/> <ColumnDefinition Width="15*"/> </Grid.ColumnDefinitions> <Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> <Button x:Name="btnStart" FontSize="16" FontWeight="Bold" Background="LightSkyBlue" Height="50" Width="100" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="10,0,0,0" >Start</Button> </Grid> <Grid Grid.Row="0" Grid.Column="2"> <Label FontSize="16" FontFamily="Century Gothic" FontStyle="Normal" FontWeight="Bold" Margin="5" Padding="5,5,5,5" HorizontalAlignment="Center"> Start</Label> </Grid> <Grid Grid.Row="0" Grid.Column="3"> <TextBox x:Name="textBox2" Margin="5,5,5,5" ></TextBox> </Grid> <Grid Grid.Row="0" Grid.Column="4"> <Label FontFamily="Century Gothic" FontSize="16" FontStyle="Normal" FontWeight="Bold" Margin="5" Padding="5,5,5,5" HorizontalAlignment="Center">Ende :</Label> </Grid> <Grid Grid.Row="0" Grid.Column="5"> <TextBox x:Name="textBox3" Margin="5" ></TextBox> </Grid > <DataGrid Name="dataGridView1" Grid.Column="0" Grid.ColumnSpan="6" Grid.RowSpan="6" AutoGenerateColumns="False" Grid.Row="1" > <DataGrid.Columns> <DataGridTextColumn Header="Start" FontSize="12" Width="125" Binding="{Binding Start}"/> <DataGridTextColumn Header="Ende" Width="125" Binding="{Binding Stop}"/> <DataGridTextColumn Header="Dauer" Width="70" Binding="{Binding Dauer}"/> <DataGridTextColumn Header="Bemerkung" Width="720" Binding="{Binding Bemerkung}"/> </DataGrid.Columns> </DataGrid> </Grid> </Window> Hauptfentser c#: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Input.Manipulations; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using Timereporter2; namespace Grid { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public DateTime startTime; public DateTime endTime; public MainWindow() { InitializeComponent(); test(); } public void test() { DateTime Start = new DateTime(2020, 11, 10, 0, 0, 0); DateTime Stop = new DateTime(2020, 11, 10, 0, 0, 0); CustomDataGridRow t1 = new CustomDataGridRow(Start, Stop , 0.00 , "test"); List<CustomDataGridRow> list = new List<CustomDataGridRow>(); list.Add(t1); dataGridView1.ItemsSource = list; } } } Dialogfenster "Bemerkung" XAML : <Window x:Class="Timereporter2.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:Timereporter2" mc:Ignorable="d" Title="Window1" Height="206" Width="442"> <Grid> <Grid.RowDefinitions> <RowDefinition/> <RowDefinition/> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/> </Grid.ColumnDefinitions> <Grid Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> <TextBox x:Name="textBox1" Width="442" ></TextBox> </Grid> <Grid Grid.Row="1" Grid.Column="0"> <Button x:Name="btnspeichern" Margin="15,15,15,15" FontSize="16" FontFamily="Century Gothic" FontStyle="Normal" FontWeight="Bold" >Einfügen</Button> </Grid> <Grid Grid.Row="1" Grid.Column="1"> <Button x:Name="Abbrechen" Margin="15,15,15,15" FontSize="16" FontFamily="Century Gothic" FontStyle="Normal" FontWeight="Bold" >Abbrechen</Button> </Grid> </Grid> </Window> Dialogfenster " Bemerkung" c#: using System; using System.Collections.Generic; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Shapes; namespace Timereporter2 { /// <summary> /// Interaktionslogik für Window1.xaml /// </summary> public partial class zWindow1 : Window { // Interne Zugriff private string Speichern = ""; // Externe Zugriff public string MainWindow { get { return MainWindow; } } public Window1() { InitializeComponent(); } private void btnspeichern_Click(object sender, EventArgs e) { Speichern = textBox1.Text; } public string getBemerkung() { return textBox1.Text; } } }
  21. @pr0gg3rIch habe doch sein Antwort genommen , nun musste man noch da noch was ändern Ich habe alle Antworten gelesen und verglichen
  22. Ich danke euch für ausfürliche Antworten, Ich habe it hilfe meinem Ausbilder diesen code geschrieben und macht dann was er soll: der speichert in My Document ,einschliesslich musste man noch dazu "/Zeitbuchung_" hinufügen : string testtext = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext);
  23. mit dem Relativen Pfad geht auch Aber anscheinend it Besser mit Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); Aber Ich wüsste nicht wie ich diesen Code in der Stelle von Code einsetze wo der Absolute Pfad steht : private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Speichern?","Zeiterfassungstool", MessageBoxButtons.YesNo) == DialogResult.Yes) { //e.Cancel = true; // hier wird bei Ja gespeichert string testtext = "C:/Users/mmohammadi/Documents/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext); int count = dataGridView1.Rows.Count; for (int row = 0; row < count; row++) { int columncount = dataGridView1.Columns.Count; for (int column = 0; column < columncount; column++) { objWriter.WriteLine(dataGridView1.Rows[row].Cells[column].Value.ToString()); } } MessageBox.Show("Text file was created."); objWriter.Close(); } DialogResult dialog = MessageBox.Show("möchten Das Programm wirklich beenden?"); if (dialog == DialogResult.Yes) { Application.Exit(); } else if(dialog == DialogResult.No) { e.Cancel = true; } habt Ihr vieleicht eine Idee?
  24. Hallo, Danke für die Antworten, beschreibe hier halt nun mal die Problematik : Ich habe ein Zeiterfassungstool geschrieben ,das Tool ist einfach gehalten es erfasst halt nur die Aktuelle Datum und Start und Ende und speichert diese Daten in eine Text datei auf eigene Lokle Ordner. Nun Der Pfad müsste insoweit so geändert werden, dass in jedem beliebigen Rechner in einen bestimmten Ordner die erstellte Textdatei gespeichert wird. mit absoluter und Relativer Pfad wurde wharscheilich nicht lösbar sein sondern eher mit einer Umgebungvariablen wie %Appdata% oder %Temp% oder ähnliches, als Zieldatei sollte in dieses Pfadziel einen Ordner automatisch erstellt werden , in dem die Textdatei die jedes mal mit drücken auf speichern gestellt und erfasst werden , gespeichert wird. ich danke euch in voraus für die Antworten Hier der Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Text; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.Configuration; namespace Zeiterfassungstool { public partial class Form1 : Form { //Globale Variabeln public DateTime startTime; public DateTime endTime; string v1 = System.Configuration.ConfigurationManager.AppSettings["k1"]; string v2 = System.Configuration.ConfigurationManager.AppSettings["k2"]; string v3 = System.Configuration.ConfigurationManager.AppSettings["k3"]; public Form1() { InitializeComponent(); btnStart.Visible = true; //btnEnde.Visible = false; //btnspeichern.Visible = false; btnStart.Text = "Start"; MessageBox.Show(System.Configuration.ConfigurationManager.AppSettings["k1"]); MessageBox.Show(System.Configuration.ConfigurationManager.AppSettings["k2"]); MessageBox.Show(System.Configuration.ConfigurationManager.AppSettings["k3"]); } //--------------------------------------START------------------------------------------------ private void btnStart_Click(object sender, EventArgs e) { if (btnStart.Text == "Start") { this.startTime = DateTime.Now; textBox2.Text = startTime.ToString("HH:mm:ss"); int n = dataGridView1.Rows.Add(); dataGridView1.Rows[n].Cells[0].Value = textBox2.Text; btnStart.Text = "Ende"; } else { this.endTime = DateTime.Now; textBox3.Text = endTime.ToString("HH:mm:ss"); int n = dataGridView1.Rows.Count - 1; dataGridView1.Rows[n].Cells[1].Value = textBox3.Text; TimeSpan dauer; dauer = endTime.Subtract(startTime); int m = dataGridView1.Rows.Count - 1; dataGridView1.Rows[m].Cells[2].Value = dauer.TotalHours.ToString("0.00"); Bemerkung bemerkungdialog = new Bemerkung(); bemerkungdialog.StartPosition = FormStartPosition.CenterScreen; if (bemerkungdialog.ShowDialog() == DialogResult.OK) { int d = dataGridView1.Rows.Count - 1; dataGridView1.Rows[d].Cells[3].Value = bemerkungdialog.getBemerkung(); } //----------Löschen------------------- foreach (Control tbx in Controls) { if (tbx.GetType() == typeof(TextBox)) { ((TextBox)tbx).Clear(); } } btnStart.Text = "Start"; } } //------------------------------------SizeChanged. NotifyIcon------------------------------------------- private void Form1_SizeChanged(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Minimized) { notifyIcon1.Icon = SystemIcons.Application; } this.ShowInTaskbar = false; } private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e) { this.WindowState = FormWindowState.Normal; } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (MessageBox.Show("Speichern?","Zeiterfassungstool", MessageBoxButtons.YesNo) == DialogResult.Yes) { string testtext = "C:/Users/mmohammadi/Documents/Zeitbuchung_" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".txt"; var objWriter = new System.IO.StreamWriter(testtext); int count = dataGridView1.Rows.Count; for (int row = 0; row < count; row++) { int columncount = dataGridView1.Columns.Count; for (int column = 0; column < columncount; column++) { objWriter.WriteLine(dataGridView1.Rows[row].Cells[column].Value.ToString()); } } MessageBox.Show("Text file was created."); objWriter.Close(); } DialogResult dialog = MessageBox.Show("möchten Das Programm wirklich beenden?"); if (dialog == DialogResult.Yes) { Application.Exit(); } else if(dialog == DialogResult.No) { e.Cancel = true; } } } } App.Config: <?xml version="1.0" encoding="utf-8"?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" /> </startup> <appSettings> <add key="k1" value="Pfad zum Speichern angeben " /> <add key="k2" value="v2" /> <add key="k3" value="v3" /> <add key="ClientSettingsProvider.ServiceUri" value="" /> </appSettings> </configuration>
  25. gibt es eine Vorgehensweise einen Ordnerpfad in der Code so definieren, dass an jedem Rechner ohne Fehlermeldung funktioniert?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...