Hallo zusammen
Ich habe folgendes Problem. Ich bin daran einen HTML - Editior zu schreiben. Soweit so gut.
Nun möchte ich der Übersicht halber ein paar Einstellmöglichkeiten in eine neue Form auslagern(Farbe, Schriftart usw).
Nun habe ich in FormMain den Pfad für eine CSS datei in einem String (csssource) gespeichert. In FormSettings (dem zweiten Forms) möchte ich gerne diesen String verwenden, um die Einstellungen in die CSS zu schreiben.
Ich habe mit Get und Set usw alles probiert. Ich kann nunmehr in FormSettings den String mit Hauptform.csssource ansprechen, jedoch hat diesser String keinen Wert und so ergibt es eine Nullexception.
In FormMain hat der String beim Ausführen aber definitiv einen Inhalt.
Es scheint also so, als würde der Wert von csssource nicht an die andere Form (FormSettings) übergeben.
Hier der Übersicht mal den Kompletten Code:
FormMain:
FormSettings:
Hier ein Bild von dem Frontend:
Klick
Ich bin wirklich am verzweifeln und komme nichct mehr weiter.
Hoffe ihr seht den Fehler und könnt mir helfen
Ich habe folgendes Problem. Ich bin daran einen HTML - Editior zu schreiben. Soweit so gut.
Nun möchte ich der Übersicht halber ein paar Einstellmöglichkeiten in eine neue Form auslagern(Farbe, Schriftart usw).
Nun habe ich in FormMain den Pfad für eine CSS datei in einem String (csssource) gespeichert. In FormSettings (dem zweiten Forms) möchte ich gerne diesen String verwenden, um die Einstellungen in die CSS zu schreiben.
Ich habe mit Get und Set usw alles probiert. Ich kann nunmehr in FormSettings den String mit Hauptform.csssource ansprechen, jedoch hat diesser String keinen Wert und so ergibt es eine Nullexception.
In FormMain hat der String beim Ausführen aber definitiv einen Inhalt.
Es scheint also so, als würde der Wert von csssource nicht an die andere Form (FormSettings) übergeben.
Hier der Übersicht mal den Kompletten Code:
FormMain:
Code:
/* **************************************************************
* Dieses Programm dient zum erstellen eines HTML - Gerüsts
* Inkl. einiger Grundwerkzeuge. Das Programm erstellt eine
* HTML - Datei und den dazugehöhrigen Code.
* **************************************************************
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace HTML_CodeGenerator
{
public partial class FormMain : Form
{
//***********Variabeln***************
private string Filesource;
private string htmlgeruest;
private string selectedText;
private string dateiname;
private StreamWriter HtmFile;
public string csssource { get; set; }
//***********************************
//Die FormSettings laden
private FormSettings Grundeinstellungen;
public FormMain()
{
InitializeComponent();
Grundeinstellungen = new FormSettings();
}
private void FormMain_Load(object sender, EventArgs e)
{
//Das Grundgeruest von HTML in einem String definieren
htmlgeruest = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">";
htmlgeruest += Environment.NewLine + "<html>";
htmlgeruest += Environment.NewLine + " <head>";
htmlgeruest += Environment.NewLine + " <title>" + "</title>";
htmlgeruest += Environment.NewLine + "<link rel=\"stylesheet\" type=\"text/css\" href=\"" + dateiname + ".css\">";
htmlgeruest += Environment.NewLine + " </head>";
htmlgeruest += Environment.NewLine + " <body>";
htmlgeruest += Environment.NewLine + " </body>";
htmlgeruest += Environment.NewLine + "</html>";
}
//Per Klick auf button_einrichten die Formsettings starten
private void button_einrichten_Click(object sender, EventArgs e)
{
Grundeinstellungen.Show();
/*Grundeinstellungen.ShowDialog();
string str = Grundeinstellungen.HTMLFarbe;*/
}
//Datei erstellen mit SavafileDialog
private void button_CreateFile_Click(object sender, EventArgs e)
{
SaveFileDialog dlgSave = new SaveFileDialog();
string FileName = "";
dlgSave.DefaultExt = "htm";
if (dlgSave.ShowDialog() == DialogResult.OK)
{
FileName = dlgSave.FileName;
StreamWriter sw = File.CreateText(FileName);
sw.Write(htmlgeruest);
Filesource = FileName;
sw.Flush();
sw.Close();
using (StreamReader sr = new StreamReader(Filesource))
richTextBox_Fileview.Text = sr.ReadToEnd(); //html Datei in RichTextBox einlesen
dateiname = Path.GetFileNameWithoutExtension(Filesource);
csssource = Path.GetDirectoryName(Filesource) + "\\" + dateiname + ".css";
MessageBox.Show(csssource);
File.Create(dateiname+".css").Close() ; //CSS Datei erstellen und schliessen
if (File.Exists(dateiname+".css"))
{
using (StreamReader sr = new StreamReader(dateiname + ".css"))
richTextBox_css.Text = sr.ReadToEnd(); //css Datei in RichTextBox einlesen
}
else
{
MessageBox.Show("Die CSS Datei wurde nicht gefunden");
}
}
}
//Datei öffnen mit openfileDialog //Aus MSDN übernommen
private void button_openfile_Click(object sender, EventArgs e)
{
Stream myStream;
OpenFileDialog openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "Textdateien|*.txt|Internetdateien|*.htm;*.html"; //Auswahl auf htm und html Datein beschränken
openFileDialog1.FilterIndex = 2;
openFileDialog1.RestoreDirectory = true;
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
if ((myStream = openFileDialog1.OpenFile()) != null)
{
myStream.Close();
}
MessageBox.Show("datei" + openFileDialog1.FileName);
Filesource = openFileDialog1.FileName;
using (StreamReader sr = new StreamReader(Filesource))
richTextBox_Fileview.Text = sr.ReadToEnd(); //Datei in RichTextBox einlesen
dateiname = Path.GetFileNameWithoutExtension(Filesource);
File.Create(dateiname + ".css").Close(); //CSS Datei erstellen und schliessen
if (File.Exists(dateiname + ".css"))
{
using (StreamReader sr = new StreamReader(dateiname + ".css"))
richTextBox_css.Text = sr.ReadToEnd(); //css Datei in RichTextBox einlesen
}
else
{
MessageBox.Show("Die CSS Datei wurde nicht gefunden");
}
}
}
//einen Titel erstellen und in die Datei schreiben
private void button_titlecreate_Click(object sender, EventArgs e)
{
if (Filesource == "")
{
MessageBox.Show("Bitte zuerst eine Datei erstellen oder öffnen");
}
//definieren der Grösse
//*************************************************
string grösse1;
string grösse2;
if (comboBox_grösseTitel.Text == "klein")
{
grösse1 = "<h3>";
grösse2 = "</h3>";
}
else if (comboBox_grösseTitel.Text == "mittel")
{
grösse1 = "<h2>";
grösse2 = "</h2>";
}
else if (comboBox_grösseTitel.Text == "gross")
{
grösse1 = "<h1>";
grösse2 = "</h1>";
}
else
{
MessageBox.Show("Fehler in Grössendefinition");
grösse1 = "<h1>";
grösse2 = "</h1>";
}
//**************************************************
selectedText = richTextBox_Fileview.SelectedText;
selectedText = grösse1 + selectedText + grösse2;
MessageBox.Show(selectedText);
richTextBox_Fileview.SelectedText = selectedText;
HtmFile = File.CreateText(Filesource); //Inhalt von RichTextBox in datei schreiben
HtmFile.Write(richTextBox_Fileview.Text);
HtmFile.Close();
}
private void button_review_Click(object sender, EventArgs e)
{
Process.Start(Filesource); //Datei mit standardbrowser öffnen
HtmFile = File.CreateText(Filesource); //Inhalt von RichTextBox in datei schreiben
HtmFile.Write(richTextBox_Fileview.Text);
HtmFile.Close();
}
}
}
FormSettings:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Diagnostics;
namespace HTML_CodeGenerator
{
public partial class FormSettings : Form
{
public string HTMLFarbe { get; set; }
public Font SchriftArt { get; set; }
private FormMain Hauptform;
public FormSettings()
{
InitializeComponent();
//Hauptform = new FormMain();
}
private void FormSettings_Load(object sender, EventArgs e)
{
}
private void button_backcolor_Click(object sender, EventArgs e)
{
colorDialog1.ShowDialog();
HTMLFarbe = ColorTranslator.ToHtml(colorDialog1.Color);
MessageBox.Show(HTMLFarbe);
MessageBox.Show(Hauptform.csssource);
//StreamWriter sw = File.CreateText(Hauptform.csssource);
//sw.Write("teste");
//StreamWriter myFile = new StreamWriter(Hauptform.csssource);
//myFile.Write(HTMLFarbe);
//myFile.Close();
}
private void button_font_Click(object sender, EventArgs e)
{
fontDialog1.ShowDialog();
SchriftArt = fontDialog1.Font;
}
}
}
Hier ein Bild von dem Frontend:
Klick
Ich bin wirklich am verzweifeln und komme nichct mehr weiter.
Hoffe ihr seht den Fehler und könnt mir helfen
Zuletzt bearbeitet: