<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
	<title>Neue Themen der dotNET Base.de</title>
	<description>Dieser Feed enthält alle neuen Themen der .Net Base</description>
	<link>http://dotnetbase.de/index.php</link>
	<pubDate>Fri, 12 Mar 2010 12:19:47 +0000</pubDate>
	<ttl>5</ttl>
	<item>
		<title><![CDATA[[Test] Programm zum erstellen von Hilfedateien]]></title>
		<link>http://dotnetbase.de/test-programm-erstellen-hilfedateien-t471.html</link>
		<description><![CDATA[Hallo,<br />
<br />
seit anfang Februar bin ich dran ein Programm zu schreiben, mit dem Hilfedateien erzeugt werden können.<br />
<br />
Im Moment würde ich den Status als Beta bezeichnen.<br />
Alle wichtigen Funktionen sind schon enthalten, jedoch noch nicht ausgereift und zum Teil ungetestet.<br />
Manche Funktionen fehlen noch ganz.<br />
<br />
Im Laufe der nächsten Tage werde ich das Projekt noch etwas ausbauen und eine Beispielhilfe dazugeben.<br />
<br />
Schaut es euch einfach mal an.<br />
<br />
Dateien:<br />
1. EasyHelpMaker -&gt; Exe zum erstellen der Hilfedateien<br />
2. EasyHelpshow -&gt; Exe zum anzeigen der Hilfedateien<br />
3. 2Dll's die benötigt werden<br />
4. key.jpg -&gt; Wird benötigt und kennzeichnet die beiden Exe als kostenlose Editionen<br />
<br />
Erstellt mit VB 2008 ExpressEdition, Framework 2<br />
<br />
Downloadgröße 120kb<br />
<br />
<a href='http://www.der-weg-zum-verein.de/download/dotnetbase-Version.zip' class='bbc_url' title='Externer Link' rel='nofollow external'>Download</a><br />
<br />
Gruss<br />
<br />
mikeb69<div id='attach_wrap' class='rounded clearfix'>
	<h4></h4>
	<ul>
		
			<li class=''>
				<a class='resized_img' rel='lightbox[3361]' id='ipb-attach-url-335-1268464895,0294' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=335" title="Vorschau - dotNetBase.jpg -  33,03K,  17"><img src="http://dotnetbase.de/uploads/monthly_03_2010/post-243-1268041037,3268_thumb.jpg" id='ipb-attach-img-335-1268464895,0294' style='width:100;height:66' class='attach' width="100" height="66" alt="" /></a>
			</li>
		
	</ul>
</div>]]></description>
		<pubDate>Fri, 12 Mar 2010 12:19:47 +0000</pubDate>
		<guid>http://dotnetbase.de/test-programm-erstellen-hilfedateien-t471.html</guid>
	</item>
	<item>
		<title>ListView Befüllen in C#</title>
		<link>http://dotnetbase.de/listview-befuellen-c-t496.html</link>
		<description><![CDATA[Hallo<br />
<br />
Hab da mal ein kleines oder von mir auch größeres Problem.<br />
<br />
Wenn ich ein ListView in eine Windows Forms oder Benutzersteuerelement reinbringe und es dann an<br />
<br />
eine Datenbank anbinde wird es erstens überhaupt nicht mit Daten befüllt und zweitens ist das ListView<br />
<br />
aus der Form "weg". Das heißt es wird nichtmehr angezeigt.<br />
<br />
<br />
Hier das ListView :<br />
<br />
<br />
<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'>using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Datenverbindung;

namespace baumatec.form.Sub
{
	public partial class wartung_anlegen : UserControl
	{
    	CDatenLesenViewList dbmaschinenliste;

    	CDatenLesenViewList dbmaschinengruppe;

    	string strmaschinenliste = "";

    	string strmaschinengruppe = "";

    	public wartung_anlegen()
    	{
        	maschinengruppe_laden();

        	InitializeComponent();
    	}

    	public void maschinengruppe_laden()
    	{
        	string&#91;&#93; SpaltenSQL = {"mg_id","gruppenname"};

        	string&#91;&#93; ListViewHeader = {"mg_id","Maschinengruppe"};

        	int&#91;&#93; ListViewBreite = {0, 170};

        	dbmaschinengruppe = new CDatenLesenViewList(listview_maschinengruppe, ListViewHeader, ListViewBreite, SpaltenSQL, "gruppenname", "maschinengruppe");
   		
        	dbmaschinengruppe.ListViewbefüllen();
    	}

    	public void maschinenliste_laden()
    	{
        	string&#91;&#93; SpaltenSQL = { "m_id", "name" };

        	string&#91;&#93; ListViewHeader = { "m_id", "Maschinen" };

        	int&#91;&#93; ListViewBreite = { 0, 170 };

        	dbmaschinenliste = new CDatenLesenViewList(listview_maschinenliste, ListViewHeader, ListViewBreite, SpaltenSQL, "name", "maschine");

        	dbmaschinenliste.ListViewbefüllen();
    	}

    	private void listview_maschinengruppe_Click(object sender, EventArgs e)
    	{
        	strmaschinengruppe = "";

        	strmaschinengruppe = listview_maschinengruppe.SelectedItems&#91;0&#93;.Text;

        	strmaschinengruppe = listview_maschinengruppe.SelectedItems&#91;0&#93;.SubItems&#91;1&#93;.Text;
    	}

    	private void listview_maschinenliste_Click(object sender, EventArgs e)
    	{
        	strmaschinenliste = "";

        	strmaschinenliste = listview_maschinenliste.SelectedItems&#91;0&#93;.Text;

        	strmaschinenliste = listview_maschinenliste.SelectedItems&#91;0&#93;.SubItems&#91;1&#93;.Text;
    	}
	}
}

</pre></div><br />
<br />
<br />
und hier die Connection :<br />
<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;

namespace Datenverbindung
{
	#region Abstrakte Klasse Verbindung

	abstract public class CDBVerbindung
	{
    	protected string connDB = @"Server='(local)';" +            	// Datenquelle
                           		"Initial Catalog ='.....';" +      	// Datenbank Quelle
                           		"Integrated Security = 'false';" +   // keine Windowsintegration 
                           		"User = .....; Pwd = .....";   	// Passwordeingabe

    	private SqlConnection conDatenbank = null;

    	protected void Oeffnen()
    	{
        	conDatenbank = new SqlConnection(connDB);

        	try
        	{
            	conDatenbank.Open();
        	}

        	catch (Exception exc)
        	{
            	System.Windows.Forms.MessageBox.Show(exc.Message, " Fehler in der Datenbank ");
        	}
    	}

    	protected void Schliessen()
    	{
        	this.conDatenbank.Close();
    	}
	}

	#endregion

	#region "COMMAND" Befehl gegen die Datenbank

	//********************************************************************************************************************
	//************************************************KLASSE**************************************************************
	//**********************************************CCOMMANDDB************************************************************
	//******************************************************************************************************************** 	

	/// &lt;summary&gt;
	/// Klasse, wo SQL - Befehle ausgeführt werden können
	/// &lt;/summary&gt;
	/// 

	class CCommandDB : CDBVerbindung
	{
    	string Sql = " ";

    	SqlCommand cmd;

    	string Tabelle;

    	/// &lt;summary&gt;
    	/// CommandQery mit der Eingabe der Tabelle
    	/// &lt;/summary&gt;
    	/// &lt;param name="Tabelle"&gt;Tabellenname von der Tabelle&lt;/param&gt;
    	/// 

    	public CCommandDB(string Tabelle)
    	{
        	this.Tabelle = Tabelle;
    	}

    	private void SQLBefehl(string SQLBefehl)
    	{
        	Sql = SQLBefehl;

        	SqlConnection conn = new SqlConnection(connDB);

        	cmd = new SqlCommand(Sql, conn);

        	try
        	{
            	conn.Open();

            	cmd.ExecuteNonQuery();
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.Message);
        	}

        	conn.Close();
    	}

    	/// &lt;summary&gt;
    	/// Delete SQL - Befehl zum 
    	/// &lt;/summary&gt;
    	/// &lt;param name="Spalte"&gt;Spalte (Primary KEY - Spalte wäre vom Vorteil&lt;/param&gt;
    	/// &lt;param name="Index"&gt;Gewählte Code&lt;/param&gt;
    	/// 

    	public void Delete(string Spalte, string Index)
    	{
        	Sql = " Delete From " + Tabelle + " Where " + Spalte + " = " + Index;

        	SQLBefehl(Sql);
    	}

    	/// &lt;summary&gt;
    	/// Command Insert gegen die Datenbank
    	/// Davor muss ein Array mit den Werten eingegeben werden
    	/// Zahlen Werte einfach per String konvertiet...Stringkompenete mit ' eingrenzen, wie 'StringWert2' 
    	/// string&#91;,&#93; strIndex = { { "Spalte", "Zahlenwert1" }, 
    	///               		{ "Spalte2", "'StringWert2'" }, 
    	///               		{ "Spalte3", "Zahlenwert3" } };
    	/// 
    	///cmdInsert(strIndex, 3);
    	/// 
    	/// &lt;/summary&gt;
    	/// &lt;param name="SpalteIndex"&gt;mehrdimensionalles Array wo die Werte eingegeben werden&lt;/param&gt;
    	/// &lt;param name="Anzahl"&gt;Anzahl Der Werte im Insert&lt;/param&gt;
    	/// 

    	public void Insert(string&#91;,&#93; SpalteIndex, int Anzahl)
    	{
        	int k = 0;

        	string strMessage = " Insert Into " + Tabelle + " (";

        	String strWert;

        	do
        	{
            	for (int i = 0; i &lt; Anzahl; i++)
            	{
                	strWert = SpalteIndex&#91;i, k&#93;;

                	if (i == Anzahl - 1)
                	{
                    	strMessage += strWert;
                	}

                	else
                	{
                    	strMessage += strWert + ",";
                	}
            	}

            	if (k == 0)
            	{
                	strMessage += ") Values (";
            	}

            	else
            	{
                	strMessage += ")";
            	}

            	k++;
        	}

        	while (k &lt; 2);

        	Sql = strMessage;

        	MessageBox.Show(Sql.ToString());

        	SQLBefehl(Sql);
    	}

    	/// &lt;summary&gt;
    	/// Updatecommand gegen die Datenbank
    	/// &lt;/summary&gt;
    	/// &lt;param name="Spalte"&gt;Spalte in der Tabelle, die Abgedatet werden soll&lt;/param&gt;
    	/// &lt;param name="Wert"&gt;neuer Wert für die Spaöte, wenn Stringwert, dann in  ''&lt;/param&gt;
    	/// &lt;param name="Where"&gt;Where Klausel zum Beispiel ArtikelNR = 8 &lt;/param&gt;
    	/// &lt;param name="WhereWO"&gt;Welche Spalte soll die Bedingung erfüllen&lt;/param&gt;
    	/// &lt;param name="WhereWAS"&gt;Welcher Wert ist für die Spalte als Bedinung&lt;/param&gt;

    	public void Update(string Spalte, string Wert, string WhereWO, string WhereWAS)
    	{
        	string strMessage = " Update " + Tabelle + " Set " + Spalte + " = " + Wert + " Where " + WhereWO + " = " + WhereWAS;

        	Sql = strMessage;

        	SQLBefehl(Sql);
    	}
	}

	#endregion

	#region Datatable mit DataGridView

	//********************************************************************************************************************
	//************************************************KLASSE**************************************************************
	//*************************************CDATENTABELLE mit DATENGRIDVIEW************************************************
	//********************************************************************************************************************

	/// &lt;summary&gt;
	/// Klasse, wo Datatable angesprochen wird, um  DATAGRID VIEW zu bearbeiten 
	/// &lt;/summary&gt;

	class CDatenTabelle : CDBVerbindung
	{
    	private SqlDataAdapter da = null;

    	private DataTable dt = null;

    	private string SQL = " ";

    	/// &lt;summary&gt;
    	/// Übergabe des SQL - befehl
    	/// &lt;/summary&gt;
    	/// &lt;param name="SQL"&gt; SQL - String eingeben &lt;/param&gt;
    	/// 

    	public CDatenTabelle(string SQL) : base()
    	{
        	this.SQL = SQL;

        	connectTabelleDataTable(this.SQL);
    	}

    	/// &lt;summary&gt;
    	/// Tabelle
    	/// &lt;/summary&gt;
    	/// &lt;param name="Tabelle"&gt;Tabelle&lt;/param&gt;
    	/// &lt;param name="Name"&gt;Nichts eingeben&lt;/param&gt;
    	/// 

    	public CDatenTabelle(string Tabelle, string Name) : base()
    	{
        	this.SQL = " Select * From " + Tabelle;

        	connectTabelleDataTable(this.SQL);
    	}

    	public DataTable Dt
    	{
        	get { return dt; }

        	set { dt = value; }
    	}

    	private DataTable connectTabelleDataTable(string SQLstring)
    	{
        	SqlConnection conn = new SqlConnection(connDB);

        	da = new SqlDataAdapter(SQLstring, conn);

        	SqlCommandBuilder cb = new SqlCommandBuilder(da);

        	dt = new DataTable(" Tabelle ");

        	try
        	{
            	conn.Open();

            	da.Fill(dt);

            	Dt = dt;

            	return dt;
        	}

        	catch (Exception ex)
        	{
            	System.Windows.Forms.MessageBox.Show(ex.Message, " Fehler ");

            	return null;
        	}

        	finally
        	{
            	conn.Close();
        	}
    	}

    	public void Speichern(bool Messagebox)
    	{
        	DataTable dt1 = new DataTable();

        	dt1 = Dt.GetChanges();

        	if (!(dt1 == null)) // wenn ungleich null, dann auführen
        	{
            	try
            	{
                	Oeffnen();

                	int m = da.Update(dt1); //Datenbank Update durchführen

                	string s = " Anzahl der Updates an der Datenbank: " + m.ToString();

                	if (Messagebox == true)
                	{
                    	MessageBox.Show(s, " Speichern der Daten in der Datenbank war erfolgreich! ", MessageBoxButtons.OK,

                    	MessageBoxIcon.Information);
                	}

                	Dt.AcceptChanges();
            	}

            	catch (Exception ex)
            	{
                	MessageBox.Show(ex.Message, " Speichern der Daten in der Datenbank ist fehlgeschlagen! ", MessageBoxButtons.OK,

                	MessageBoxIcon.Information);

                	Dt.RejectChanges();
            	}

            	Schliessen();
        	}
    	}

    	public void DataGridViewAnzeigen(DataGridView Datagridview)
    	{
        	Datagridview.DataSource = Dt;
    	}

    	public void DataGirdViewSuchen(string Suchfeld, string Where, DataGridView Datagridview)
    	{
        	string temp = " ";

        	temp = this.SQL;

        	string tempSuche = temp + " Where " + Where + " Like '% " + Suchfeld + " %' ";

        	try
        	{
            	this.connectTabelleDataTable(tempSuche);

            	this.DataGridViewAnzeigen(Datagridview);
        	}

        	catch (Exception)
        	{
            	MessageBox.Show(" Fehler ");
        	}
    	}

    	internal void GetChanges()
    	{
        	throw new NotImplementedException();
    	}
	}

	#endregion

	#region Datentabelle zurück bekommen

	//********************************************************************************************************************
	//********************************************KLASSE******************************************************************
	//******************************************CDATENLESER***************************************************************
	//********************************************************************************************************************

	/// &lt;summary&gt;
	/// Gibt DataTable duch SQL befehl an
	/// &lt;/summary&gt;
	/// 

	class CDatenLeser : CDBVerbindung
	{
    	public DataTable Dt { get; set; }

    	private SqlDataReader dr = null;

    	private string SQL = " ";

    	/// &lt;summary&gt;
    	/// Übergabe des SQL - befehl
    	/// &lt;/summary&gt;
    	/// &lt;param name="SQL"&gt;SQL - String eingeben&lt;/param&gt;
    	/// 

    	public CDatenLeser(string SQL) : base()
    	{
        	this.SQL = SQL;

        	connectTabelleDataTable();
    	}

    	/// &lt;summary&gt;
    	/// Tabelle
    	/// &lt;/summary&gt;
    	/// &lt;param name="Tabelle"&gt;Tabelle&lt;/param&gt;
    	/// &lt;param name="Name"&gt;Nichts eingeben&lt;/param&gt;
    	/// 

    	public CDatenLeser(string Tabelle, string Name) : base()
    	{
        	this.SQL = " Select * From ";

        	connectTabelleDataTable();
    	}

    	private void connectTabelleDataTable()
    	{
        	SqlConnection conn = new SqlConnection(connDB);

        	try
        	{
            	conn.Open();

            	SqlCommand cmd = new SqlCommand(SQL, conn);

            	dr = cmd.ExecuteReader(Commandbeh&#097;vior.CloseConnection);

            	Dt.Load(dr, LoadOption.OverwriteChanges);
        	}

        	catch (Exception ex)
        	{
            	System.Windows.Forms.MessageBox.Show(ex.Message, " Fehler ");
        	}

        	finally
        	{
            	conn.Close();
        	}
    	}
	}

	#endregion

	#region ViewList bearbeiten

	//********************************************************************************************************************
	//************************************************KLASSE**************************************************************
	//******************************************CDATENLESENVIEWLIST*******************************************************
	//********************************************************************************************************************
	/// &lt;summary&gt;
	/// Bearbeitung von LISTVIEWS
	/// &lt;/summary&gt;
	/// 

	class CDatenLesenViewList : CDBVerbindung
	{
    	SqlDataReader dr = null;

    	ListView Listview = null;

    	string SQL = " ";

    	SqlCommand cmd = null;

    	int Spalte;

    	string Tabelle;

    	string komma = " , ";

    	string SQLSuche = " ";

    	/// &lt;summary&gt;
    	/// Richtet einfach die Tabelle ein
    	/// &lt;/summary&gt;
    	/// &lt;param name="Tabelle"&gt;String Tabelle&lt;/param&gt;

    	public CDatenLesenViewList(string Tabelle) : base()
    	{
        	this.Tabelle = Tabelle;
    	}

    	/// &lt;summary&gt;
    	/// Richtet Listview ein mit seinen Spalten und Breiten, und macht den SQL String individuell
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;LISTVIEW&lt;/param&gt;
    	/// &lt;param name="SpaltenNameHeader"&gt;STRING ARRAY Spaltenname der Listview&lt;/param&gt;
    	/// &lt;param name="BreiteSpalteHeader"&gt;INT ARRAY Breite der Spalten&lt;/param&gt;
    	/// &lt;param name="SQL"&gt;STRING WERT, SQL - Befehl&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;STRING WERT, Tabelle&lt;/param&gt;
    	/// 

    	public CDatenLesenViewList(ListView Listview, string&#91;&#93; SpaltenNameHeader, int&#91;&#93; BreiteSpalteHeader, string SQL, string Tabelle) : base()
    	{
        	Listview.Clear();

        	this.Tabelle = Tabelle;

        	this.SQL = SQL;

        	this.Listview = Listview;

        	try
        	{
            	this.Listview.View = View.Details;

            	this.Listview.Items.Clear();

            	for (int i = 0; i &lt; SpaltenNameHeader.Length; i++)
            	{
                	this.Listview.Columns.Add(SpaltenNameHeader&#91;i&#93;, BreiteSpalteHeader&#91;i&#93;);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler bei der Erstellung ");
        	}
    	}

    	/// &lt;summary&gt;
    	/// Richtet Listview ein mit seinen Spalten und Breiten, und macht den SQL String individuell
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenNameHeader"&gt;String ARRAY Spaltenangabe der Listview &lt;/param&gt;
    	/// &lt;param name="BreiteSpalteHeader"&gt;String ARRAY Spaltenname der Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenSQL"&gt;String ARRAY Spalten der SQL Spalten&lt;/param&gt;
    	/// &lt;param name="ORDERBY"&gt;String Wert, wo die Tabelle sortiert werden soll&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;String Wert, Tabelle angeben&lt;/param&gt;
    	/// 

    	public CDatenLesenViewList(ListView Listview, string&#91;&#93; SpaltenNameHeader, int&#91;&#93; BreiteSpalteHeader, string&#91;&#93; SpaltenSQL, string ORDERBY, string Tabelle) : base()
    	{
        	Listview.Clear();

        	string strTempSQL = " Select ";

        	this.Tabelle = Tabelle;

        	int laenge = Convert.ToInt16(SpaltenSQL.Length) - 1;

        	this.Listview = Listview;

        	try
        	{
            	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
            	{
                	strTempSQL += SpaltenSQL&#91;i&#93;;

                	if ((i == laenge))
                	{
                    	strTempSQL += " From " + Tabelle;
                	}

                	else
                	{
                    	strTempSQL += komma;
                	}
            	}

            	this.SQLSuche = strTempSQL;

            	this.SQL = strTempSQL + " Order By " + ORDERBY;

            	this.Listview.View = View.Details;

            	this.Listview.Items.Clear();

            	for (int i = 0; i &lt; SpaltenNameHeader.Length; i++)
            	{
                	this.Listview.Columns.Add(SpaltenNameHeader&#91;i&#93;, BreiteSpalteHeader&#91;i&#93;);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler bei der Erstellung ");
        	}
    	}

    	/// &lt;summary&gt;
    	/// Richtet Listview ein mit seinen Spalten und Breiten, und macht den SQL String individuell
    	/// ES KANN eine WHERE Bedinung an gegeben werden
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenNameHeader"&gt;String ARRAY Spaltenangabe der Listview &lt;/param&gt;
    	/// &lt;param name="BreiteSpalteHeader"&gt;String ARRAY Spaltenname der Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenSQL"&gt;String ARRAY Spalten der SQL Spalten&lt;/param&gt;
    	/// &lt;param name="WHERE"&gt;String WERT Spaltenname in welcher Spalte der Tabelle gesucht wird&lt;/param&gt;
    	/// &lt;param name="WHEREBedingung"&gt;String WERT Bedingung....meist die ID&lt;/param&gt;
    	/// &lt;param name="ORDERBY"&gt;String WERT Spaltenname wo sortiert werden soll&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;String WERT Tabellenname, wo der SQL Generator sich bezieht&lt;/param&gt;
    	/// 

    	public CDatenLesenViewList(ListView Listview, string&#91;&#93; SpaltenNameHeader, int&#91;&#93; BreiteSpalteHeader, string&#91;&#93; SpaltenSQL, string WHERE, string WHEREBedingung, string ORDERBY, string Tabelle) : base()
    	{
        	Listview.Clear();

        	string strTempSQL = " Select ";

        	this.Tabelle = Tabelle;

        	int laenge = Convert.ToInt16(SpaltenSQL.Length) - 1;

        	this.Listview = Listview;

        	try
        	{
            	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
            	{
                	strTempSQL += SpaltenSQL&#91;i&#93;;

                	if ((i == laenge))
                	{
                    	strTempSQL += " From " + Tabelle;
                	}

                	else
                	{
                    	strTempSQL += komma;
                	}
            	}

            	this.SQLSuche = strTempSQL;

            	this.SQL = strTempSQL + " Where " + WHERE + " Like " + WHEREBedingung + " Order By " + ORDERBY;

            	this.Listview.View = View.Details;

            	this.Listview.Items.Clear();

            	for (int i = 0; i &lt; SpaltenNameHeader.Length; i++)
            	{
                	this.Listview.Columns.Add(SpaltenNameHeader&#91;i&#93;, BreiteSpalteHeader&#91;i&#93;);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler bei der Erstellung ");
        	}
    	}

    	//******************************************KONSTRUKTOR ohne LISTVIEW Angaben*******************************************************************

    	/// &lt;summary&gt;
    	/// Bindet Listview mit einem Reader per SQL String
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;ListVIEW die angebunden wird&lt;/param&gt;
    	/// &lt;param name="SQL"&gt;STRING WERT, SQL Befehl für die Daten&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;STRING Wert, &lt;/param&gt;
    	/// 

    	public CDatenLesenViewList(ListView Listview, string SQL, string Tabelle) : base()
    	{
        	Listview.Clear();

        	this.Listview = Listview;

        	this.Tabelle = Tabelle;

        	this.SQL = SQL;

        	this.Listview.View = View.Details;
    	}

    	/// &lt;summary&gt;
    	/// Bindet Listview mit einem Reader, und macht den SQL String individuell
    	/// 
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;LISTVIEW die angebunden wird&lt;/param&gt;
    	/// &lt;param name="SpaltenSQL"&gt;String ARRAY Spalten der SQL Spalten&lt;/param&gt;
    	/// &lt;param name="ORDERBY"&gt;String Wert, wo die Tabelle sortiert werden soll&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;String Wert, Tabelle angeben&lt;/param&gt;
    	/// 
    	public CDatenLesenViewList(ListView Listview, string&#91;&#93; SpaltenSQL, string ORDERBY, string Tabelle)
        	: base()
    	{
        	Listview.Clear();

        	this.Listview = Listview;

        	this.Tabelle = Tabelle;

        	string komma = " , ";

        	string strTempSQL = " Select ";

        	int laenge = Convert.ToInt16(SpaltenSQL.Length) - 1;

        	try
        	{
            	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
            	{
                	strTempSQL += SpaltenSQL&#91;i&#93;;

                	if ((i == laenge))
                	{
                    	strTempSQL += " From " + Tabelle;
                	}

                	else
                	{
                    	strTempSQL += komma;
                	}
            	}

            	this.SQLSuche = strTempSQL;

            	this.SQL = strTempSQL + " Order By " + ORDERBY;

            	this.Listview.View = View.Details;

            	this.Listview.Items.Clear();
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler ");
        	}
    	}

    	/// &lt;summary&gt;
    	/// Bindet Listview mit einem Reader, und macht den SQL String individuell
    	/// ES KANN eine WHERE Bedinung angegeben werden
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenNameHeader"&gt;String ARRAY Spaltenangabe der Listview &lt;/param&gt;
    	/// &lt;param name="BreiteSpalteHeader"&gt;String ARRAY Spaltenname der Listview&lt;/param&gt;
    	/// &lt;param name="SpaltenSQL"&gt;String ARRAY Spalten der SQL Spalten&lt;/param&gt;
    	/// &lt;param name="WHERE"&gt;String WERT Spaltenname in welcher Spalte der Tabelle gesucht wird&lt;/param&gt;
    	/// &lt;param name="WHEREBedingung"&gt;String WERT Bedingung....meist die ID&lt;/param&gt;
    	/// &lt;param name="ORDERBY"&gt;String WERT Spaltenname wo sortiert werden soll&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;String WERT Tabellenname, wo der SQL Generator sich bezieht&lt;/param&gt;
    	/// 

    	public CDatenLesenViewList(ListView Listview, string&#91;&#93; SpaltenSQL, string WHERE, string WHEREBedingung, string ORDERBY, string Tabelle)
        	: base()
    	{
        	Listview.Clear();

        	this.Listview = Listview;

        	this.Tabelle = Tabelle;

        	string komma = " , ";

        	string strTempSQL = " Select ";

        	int laenge = Convert.ToInt16(SpaltenSQL.Length) - 1;

        	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
        	{
            	strTempSQL += SpaltenSQL&#91;i&#93;;

            	if ((i == laenge))
            	{
                	strTempSQL += " From " + Tabelle;
            	}

            	else
            	{
                	strTempSQL += komma;
            	}
        	}

        	this.SQLSuche = strTempSQL;

        	this.SQL = strTempSQL + " Where " + WHERE + " Like " + WHEREBedingung + " Order By " + ORDERBY;

        	this.Listview.View = View.Details;

        	this.Listview.Items.Clear();
    	}

    	//**********************************METHODEN *****************************************************************

    	/// &lt;summary&gt;
    	/// Befüllt das Listview
    	/// &lt;/summary&gt;
    	/// 

    	public void ListViewbefüllen()
    	{
        	ListViewItem lvItem = new ListViewItem();

        	try
        	{
            	SqlConnection conn = new SqlConnection(connDB);

            	cmd = new SqlCommand(this.SQL, conn);

            	cmd.Connection.Open();

            	dr = cmd.ExecuteReader();

            	//Spalten Ermitteln

            	char chrSuchZeichen = ',';

            	string&#91;&#93; strArray = this.SQL.Split(chrSuchZeichen);

            	this.Spalte = strArray.Length;

            	while (dr.Read())
            	{
                	lvItem = new ListViewItem(dr&#91;0&#93;.ToString());

                	for (int i = 1; i &lt; Spalte; i++)
                	{
                    	lvItem.SubItems.Add(dr&#91;i&#93;.ToString());
                	}

                	this.Listview.Items.Add(lvItem);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler in der Datenbank ");
        	}

        	cmd.Connection.Close();
    	}

    	/// &lt;summary&gt;
    	/// Gibt ein String Array  Zurück, anhand der ID des Listviews
    	/// &lt;/summary&gt;
    	/// &lt;param name="SpaltenSQL"&gt;Spalten für den SQL string&lt;/param&gt;
    	/// &lt;param name="Tabelle"&gt;Tabelle der Spalte&lt;/param&gt;
    	/// &lt;param name="WhereSpalte"&gt;Spalte eintragen, wo die Bedingung geprüft wird&lt;/param&gt;
    	/// &lt;param name="WhereBedingung"&gt;ID&lt;/param&gt;
    	/// &lt;returns&gt;String Array für die Labesl&lt;/returns&gt;
    	/// 

    	public string&#91;&#93; ReturnStringWerte(string&#91;&#93; SpaltenSQL, string WhereSpalte, string WhereBedingung)
    	{
        	string&#91;&#93; Wert = new string&#91;SpaltenSQL.Length&#93;;

        	string strTempSQL = " Select ";

        	int laenge = Convert.ToInt16(SpaltenSQL.Length) - 1;

        	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
        	{
            	strTempSQL += SpaltenSQL&#91;i&#93;;

            	if ((i == laenge))
            	{
                	strTempSQL += " From " + Tabelle;
            	}

            	else
            	{
                	strTempSQL += komma;
            	}
        	}

        	this.SQL = strTempSQL + " Where " + WhereSpalte + " = " + WhereBedingung;

        	try
        	{
            	SqlConnection conn = new SqlConnection(connDB);

            	cmd = new SqlCommand(this.SQL, conn);

            	cmd.Connection.Open();

            	dr = cmd.ExecuteReader();

            	while (dr.Read())
            	{
                	for (int i = 0; i &lt; SpaltenSQL.Length; i++)
                	{
                    	Wert&#91;i&#93; = dr&#91;i&#93;.ToString();
                	}
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), "Fehler in der Datenbank");
        	}

        	cmd.Connection.Close();

        	return Wert;
    	}

    	/// &lt;summary&gt;
    	/// Suchefeld angebunden, kann mit dieser Methode, das Listview abgedatet werden
    	/// &lt;/summary&gt;
    	/// &lt;param name="Suchefeld"&gt;STRING Wert, Suchfeldspalte in der Datenbank&lt;/param&gt;
    	/// &lt;param name="Suchbedingung"&gt;String Wert, Suchbedingung (Eingabe vom Benutzer), &lt;/param&gt;
    	/// 

    	public void Suche(string Suchefeld, string Suchbedingung)
    	{
        	this.Listview.Items.Clear();

        	string TempSQL = " ";

        	ListViewItem lvItem = new ListViewItem();

        	TempSQL = this.SQLSuche;

        	TempSQL += " Where " + Suchefeld + " Like " + "'%" + Suchbedingung + "%'";

        	try
        	{
            	SqlConnection conn = new SqlConnection(connDB);

            	cmd = new SqlCommand(TempSQL, conn);

            	cmd.Connection.Open();

            	dr = cmd.ExecuteReader(Commandbeh&#097;vior.CloseConnection);

            	while (dr.Read())
            	{
                	lvItem = new ListViewItem(dr&#91;0&#93;.ToString());

                	for (int i = 1; i &lt; Spalte; i++)
                	{
                    	lvItem.SubItems.Add(dr&#91;i&#93;.ToString());
                	}

                	this.Listview.Items.Add(lvItem);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler in der Datenbank ");
        	}

        	cmd.Connection.Close();
    	}

    	/// &lt;summary&gt;
    	/// ListViewBeschriften
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;ListView&lt;/param&gt;
    	/// &lt;param name="Spaltenname"&gt;STRING ARRAY, Spaltenname&lt;/param&gt;
    	/// &lt;param name="Spaltenbreite"&gt;INT ARRAY, IntBreit&lt;/param&gt;
    	/// 

    	public static void ListViewBeschriften(ListView Listview, string&#91;&#93; Spaltenname, int&#91;&#93; Spaltenbreite)
    	{
        	try
        	{
            	Listview.View = View.Details;

            	for (int i = 0; i &lt; Spaltenname.Length; i++)
            	{
                	Listview.Columns.Add(Spaltenname&#91;i&#93;, Spaltenbreite&#91;i&#93;);
            	}
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler beim Vorgang des Beschriftens ");
        	}
    	}

    	/// &lt;summary&gt;
    	/// ListView Daten hinzufügeen
    	/// &lt;/summary&gt;
    	/// &lt;param name="Listview"&gt;ListView&lt;/param&gt;
    	/// &lt;param name="Werte"&gt;S&lt;/param&gt;
    	/// 

    	public static void ListViewDatenHinzufuegen(ListView ListviewName, string&#91;&#93; Werte)
    	{
        	try
        	{
            	ListViewItem lvItem;

            	lvItem = new ListViewItem(Werte&#91;0&#93;.ToString());

            	for (int i = 1; i &lt; Werte.Length; i++)
            	{
                	lvItem.SubItems.Add(Werte&#91;i&#93;.ToString());
            	}

            	ListviewName.Items.Add(lvItem);
        	}

        	catch (Exception ex)
        	{
            	MessageBox.Show(ex.ToString(), " Fehler beim Hinzufügen der Daten ");
        	}
    	}
	}

	#endregion
}</pre></div>]]></description>
		<pubDate>Fri, 12 Mar 2010 10:36:24 +0000</pubDate>
		<guid>http://dotnetbase.de/listview-befuellen-c-t496.html</guid>
	</item>
	<item>
		<title>.Net Base UI Framework</title>
		<link>http://dotnetbase.de/net-base-ui-framework-t117.html</link>
		<description><![CDATA[Das .Net Base UI Framework ist eine Bibliothek welche die Standardcontrols des .Net Frameworks um zusätzliche Funktionen erweitert bzw. neue Steuerelemente welche an das Design von Windows Vista bzw. Windows 7 angelehnt sind enthält.<br />
<br />
<strong class='bbc'>Aktuelle Version:</strong> 0.1.5.0<br />
<strong class='bbc'>Benötigte .NET Frameworkversion:</strong> 2.0 oder höher<br />
<br />
<strong class='bbc'>Download (Binaries):</strong><br />
<a href="http://dotnetbase.de/post-a285---title:e955cd3ebf00b01a782582b797f73345--.html" title=""><img src="http://dotnetbase.de/public/style_extra/mime_types/zip.gif" alt="" /></a>
&nbsp;<a href="http://dotnetbase.de/post-a285---title:e955cd3ebf00b01a782582b797f73345--.html" title="">UIFramework.zip</a> <span class='desc'><strong>(147,8K)</strong></span>
<br /><span class="desc info">: 65</span><br />
<span style='color: #FF0000'><strong class='bbc'>Die Datei darf nicht auf anderen Websiten zum Download angeboten werden. Bitte immer auf diese Seite zum Download verweisen!</strong></span><br />
<br />
<strong class='bbc'>Download Demo Source</strong><br />
<a href="http://dotnetbase.de/post-a113---title:db8632706f3f00eed0ac2e7cbbc8c6db--.html" title=""><img src="http://dotnetbase.de/public/style_extra/mime_types/zip.gif" alt="" /></a>
&nbsp;<a href="http://dotnetbase.de/post-a113---title:db8632706f3f00eed0ac2e7cbbc8c6db--.html" title="">Demo.zip</a> <span class='desc'><strong>(46,63K)</strong></span>
<br /><span class="desc info">: 120</span> <span style='color: #FF0000'>(Veraltet! Bitte den Quellcode der Demoanwendung aus dem Repository ziehen)</span><br />
<br />
<strong class='bbc'>Demo Source Subversionrepository</strong><br />
Url: <a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'><a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'><a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'><a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'><a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'><a href='https://secure.devs-on.net:1201/svn/dotNetBase/Demo/' class='bbc_url' title='Externer Link' rel='nofollow external'>https://secure.devs-on.net:1201/svn/dotNetBase/Demo/</a></a></a></a></a></a><br />
Benutzername/Passwort: dotnetbase<br />
<br />
<strong class='bbc'>Lizenz:</strong> <a href='http://creativecommons.org/licenses/by-nd/3.0/de/' class='bbc_url' title='Externer Link' rel='nofollow external'><img src='http://i.creativecommons.org/l/by-nd/3.0/de/80x15.png' alt='Eingefügtes Bild' class='bbc_img' /></a><br />
Es ist erlaubt das Assembly in die Anwendung zu integrieren. In <span class='bbc_underline'>jedem</span> Fall muss im Programm an einer gut sichtbaren Stelle (z.B. dem "Über" bzw. "About"-Dialog) ein Vermerk über den Urheber (Maximilian Krauß) sowie ein Link zum Projekt (Url dieses Threads) platziert werden.<br />
<br />
Alle Komponenten sind digital signiert. (<a href='http://maximiliankrauss.net/page/Digital-signiert.aspx' class='bbc_url' title='Externer Link' rel='nofollow external'>Wie Überprüfen?</a>)<br />
<br />
<span style='font-size: 15px;'>Funktionsumfang</span><br />
<br />
<strong class='bbc'>dotNetBase.Windows.Forms</strong><br />
<ul class='bbc'><li><strong class='bbc'>formBase</strong> - Eine von System.Windows.Forms.Form abgeleitete Form welche folgende Zusatzfunktionalitäten bereitstellt:<ul class='bbc'><li><strong class='bbc'>setButtonShield</strong> - Setzt unter Vista oder 7 einem angegebenen Button das Schild-Icon.<br /></li><li><strong class='bbc'>isUserAdministrator</strong> - Gibt zurück, ob der aktuell angemeldete Benutzer über Administratorrechte verfügt.<br /></li><li><strong class='bbc'>isVistaOrGreater</strong> - Gibt zurück, ob das ausführende Betriebssystem Windows Vista oder neuer ist.<br /></li><li><strong class='bbc'>isSevenOrGreater</strong> - Gibt zurück, ob das ausführende Betriebssystem Windows 7 oder neuer ist.<br /></li><li><strong class='bbc'>isGlassEnabled</strong> - Gibt zurück, ob das ausführende Betriebssystem den Aero Glas Stil aktiviert hat.<br /></li><li><strong class='bbc'>restartElevated</strong> - Startet die Anwendung neu und fordert dabei Administratorrechte ein.</li><li><strong class='bbc'>setTaskBarProgressState</strong> - Setzt unter Windows 7 die Fortschrittsanzeige in dem Taskbarbutton.<br />
Verfügbare Progressmodi:<br />
<ul class='bbc'><li><em class='bbc'>NoProgress</em> - Es wird kein Fortschritt im Taskbarbutton angezeigt.<br /></li><li><em class='bbc'>Indeterminate</em> - Es wird ein unbestimmter Fortschritt angezeigt (maequee).<br /></li><li><em class='bbc'>Normal</em> - Es wird der normale Fortschritt angezeigt (grün).<br /></li><li><em class='bbc'>Error</em> - Es wird durch eine rote Fortschrittsanzeige ein Fehler angezeigt.<br /></li><li><em class='bbc'>Paused</em> - Es wird durch eine gelbe Fortschrittsanzeige angezeigt, dass die Operation pausiert ist.</li></ul><br /></li><li><strong class='bbc'>setTaskBarProgressValue</strong> - Setzt aktuellen und den maximalwert für den Fortschritt der im Taskbarbutton angezeigt werden soll.<br /></li><li><strong class='bbc'>setOverlayIcon</strong> - Bietet die Möglichkeit unter Windows 7 dem TaskBarImage ein IconOverlay hinzuzufügen.<br /></li><li><strong class='bbc'>removeOverlayIcon</strong> - Entfernt das Overlayicon wieder aus dem TaskBarImage.</li></ul><br /></li><li><strong class='bbc'>sevenToolStripRenderer</strong> - Ein moderner ToolStripRenderer welcher auf alle Menu- Tool- und Contextmenustrips angewendet werden kann.<br /></li><li><strong class='bbc'>promptedTextBox</strong> - Eine Textbox welche dem Benutzer einen Informationstext anzeigt solange kein Text enthalten ist.<br /></li><li><strong class='bbc'>messageBoxEx</strong> - Eine erweiterte MessageBox, die unter Vista/7 den TaskDialog anstelle der normalen MessageBox anzeigt.<br /></li><li><strong class='bbc'>commandButton</strong> - Aus Vista und 7 bekannter commandButton. <strong class='bbc'>Achtung:</strong> Funktioniert nicht unter Windows XP oder früher.<br /></li><li><strong class='bbc'>listViewEx</strong> - Eine erweiterte ListView welche für das Highlighting der Items die Explorerfarben verwendet.<br /></li><li><strong class='bbc'>treeViewEx</strong> - Eine erweiterte TreeView welche für das Highlighting der Items die Explorerfarben verwendet.<br /></li><li><strong class='bbc'>switchButton</strong> - Ein Button mit welchem man Teile der Form aus- und einklappen kann.<br />
<ul class='bbc'><li><strong class='bbc'>ownerForm</strong> - Die Form welche in der Größe verändert werden soll.<br /></li><li><strong class='bbc'>collapsedSize</strong> - Gibt die Größe der ownerForm zurück wenn der switchButton den Zustand Collapsed besitzt, oder legt diese fest.<br /></li><li><strong class='bbc'>expandedSize</strong> - Gibt die Größe der ownerForm zurück wenn der switchButton den Zustand Expanded besitzt oder legt diese fest.<br /></li><li><strong class='bbc'>switchButtonState</strong> - Gibt den Zustand des switchButtons zurück oder legt diesen fest.<br /></li><li><strong class='bbc'>Event: switchButtonStateChanged</strong> - Event welches ausgelöst wird, wenn der Zustand verändert wird.</li></ul><br /></li><li><strong class='bbc'>colorDialog</strong> - Ein moderner Colorpicker<br />
<ul class='bbc'><li><strong class='bbc'>allowTransparency</strong> - Gibt an ob bei der Farbauswahl auch der Alphawert verändert werden darf.<br /></li><li><strong class='bbc'>selectedColor</strong> - Gibt die ausgewählte Farbe zurück oder legt diese fest.<br /></li><li><strong class='bbc'>Strings</strong> - Eine Auflistung von Strings welche zum Zweck der Lokalisierung des colorDialogs verwendet werden können.<br /></li><li><strong class='bbc'>Title</strong> - Der Titel des Dialoges.<br /></li><li><strong class='bbc'>ShowDialog</strong> - Zeigt den Farbauswahldialog an.</li></ul><br /></li><li><strong class='bbc'>progressOverlay</strong> - progressOverlay Control welches den Inhalt der Form überdeckt und den Fortschritt einer Aktion darstellt.<br />
<ul class='bbc'><li><strong class='bbc'>disableControls</strong> - Gibt zurück oder legt fest, ob die Controls der ownerForm deaktiviert werden sollen, während das Overlay angezeigt wird.<br /></li><li><strong class='bbc'>Owner</strong> - Gibt die Form zurück auf welcher das Overlay angezeigt werden soll oder legt diese fest.<br /></li><li><strong class='bbc'>Worker</strong> - Gibt den BackgroundWorker zurück, von welchem der Status abgefragt werden soll oder legt diesen fest.<br /></li><li><strong class='bbc'>allowClose</strong> - Gibt an, ob die Form, auf welcher das Overlay angezeigt wird, während dem Vorgang geschlossen werden kann.<br /></li><li><strong class='bbc'>Title</strong> - Gibt den Titel des Overlaydialogs zurück oder legt diesen fest.<br /></li><li><strong class='bbc'>titleColor</strong> - Gibt die Farbe des Titles zurück oder legt diese fest.<br /></li><li><strong class='bbc'>titleFont</strong> - Gibt die Schriftart des Titles zurück, oder legt diese fest.<br /></li><li><strong class='bbc'>Description</strong> - Gibt die Beschreibung des Overlaydialogs zurück oder legt diese fest.<br /></li><li><strong class='bbc'>descriptionColor</strong> - Gibt die Farbe der Description zurück, oder legt diese fest.<br /></li><li><strong class='bbc'>descriptionFont</strong> - Gibt die Schriftart der Description zurück oder legt dise fest.<br /></li><li><strong class='bbc'>showCancel</strong> - Gibt an oder legt fest, ob neben der Fortschrittsanzeige ein Abbrechen-Link angezeigt werden soll.<br /></li><li><strong class='bbc'>cancelText</strong> - Gibt den Text zurück welcher dem Abbrechen-Link zugeordnet ist, oder legt diesen fest.<br /></li><li><strong class='bbc'>Symbol</strong> - Gibt das Bild welches neben dem Titel angezeigt wird zurück oder legt dieses fest.<br /></li><li><strong class='bbc'>frameColor</strong> - Gibt die Farbe des Rahmens des progressDialogs zurück oder legt diese fest.<br /></li><li><strong class='bbc'>backColor</strong> - Gibt die Hintergrundfarbe des progressDialogs zurück oder legt diese fest.<br /></li><li><strong class='bbc'>percentDone</strong> - Gibt den prozentualen Fortschritt zurück oder legt diesen fest.<br /></li><li><strong class='bbc'>progressState</strong> - Gibt den Status der Progressbar zurück oder legt diesen fest.<br /></li><li><strong class='bbc'>overlayShown</strong> - Event welches aufgerufen wird, nachdem das overlay auf die Form gezeichnet wurde.<br /></li><li><strong class='bbc'>overlayClosed</strong> - Event welches aufgerufen wird, nachdem das overlay von der Form entfernt wurde.<br /></li><li><strong class='bbc'>cancelClicked</strong> - Event welches aufgerufen wird, wenn der Abbrechen-Link auf dem Progressdialog geklickt wurde.</li></ul></li></ul><br />
<strong class='bbc'>dotNetBase.Windows.Forms.Aero</strong><br />
<ul class='bbc'><li><strong class='bbc'>glassForm</strong> - Eine von dotNetBase.Windows.Forms.formBase abgeleitete Form bei welcher man den Glassbereich in der ClientArea erweitern kann:<br />
<ul class='bbc'><li><strong class='bbc'>glassMargin</strong> - Die Werte für Left, Right, Top, Bottom auf welche das Glasrahmen erweitert werden soll.<br /></li><li><strong class='bbc'>drawFullGlassWindow</strong> - Das Fenster wird komplett Durchsichtig.</li></ul><br /></li><li><strong class='bbc'>glassLabel</strong> - Ein Label welches auf dem erweiterten Glassbereich den Text mit einem leuchtenden Hintergrund hinterlegt.<br /></li><li><strong class='bbc'>waitingCircle</strong> - Eine Warteanimation: <img src="http://dotnetbase.de/uploads/monthly_10_2009/post-5-1256215120177.png" class='bbc_img linked-image' alt="" /><br />
<ul class='bbc'><li><strong class='bbc'>Start</strong> - Startet die Animation<br /></li><li><strong class='bbc'>Stop</strong> - Stoppt die Animation</li></ul><br /></li><li><strong class='bbc'>Wizard</strong> - Ein moderner von dotNetBase.Windows.Forms.Form abgeleiteter Assistent welcher unter Windows Vista und Windows 7 einen GlassHeader besitzt.<br />
<ul class='bbc'><li><strong class='bbc'>viewHost</strong> - Ein Container (z.B. ein Panel) in welchem die einzelnen Schritte das Assistenten angezeigt werden sollen.<br /></li><li><strong class='bbc'>Pages</strong> - Eine Auflistung mit von dotNetBase.Windows.Forms.Aero.wizardPage abgeleiteten UserControls welche die einzelnen Seiten des Assistenten darstellen.<br /></li><li><strong class='bbc'>navigateForeward</strong> - Navigiert eine Seite vorwärts. Dieser Methode kann in einer Überladung ein Dictionary&lt;object, object&gt; mit Benutzerdefinierten Daten übergeben werden.<br /></li><li><strong class='bbc'>navigateBackward</strong> - Navigiert eine Seite rückwärts. Dieser Methode kann in einer Überladung ein Dictionary&lt;object, object&gt; mit Benutzerdefinierten Daten übergeben werden.<br /></li><li><strong class='bbc'>loadPage</strong> - Lädt eine Seite anhand ihres Schlüssels in der Auflistung. Dieser Methode kann in einer Überladung ein Dictionary&lt;object, object&gt; mit Benutzerdefinierten Daten übergeben werden.<br /></li><li><strong class='bbc'>showBorderMessage</strong> - Zeigt am unteren Rand des Assistenten eine Nachricht an. Dieser Methode kann in einer Überladung neben dem Icon und dem Text auch eine Zeit (in Sekunden) angegeben werden, die angibt wie lange die Nachricht angezeigt werden soll.<br /></li><li><strong class='bbc'>hideBorderMessage</strong> - Blendet den Hinweistext aus.<br /></li><li><strong class='bbc'>isBorderMessageShown</strong> - Gibt <em class='bbc'>True</em> zurück wenn der Hinweistext momentan angezeigt wird, andernfalls <em class='bbc'>False</em><br />
.</li><li><strong class='bbc'>Event - wizardPageChanged</strong> - Wird aufgerufen, wenn das Laden einer neuen Seite im Assistenten abgeschlossen wurde.</li></ul><br /></li><li><strong class='bbc'>wizardPage</strong> - Stellt eine Inhaltsseite für den Assistenten dar.<br />
<ul class='bbc'><li><strong class='bbc'>pageTitle</strong> - Eigenschaft für die Überschrift der Seite die im Assistenten angezeigt werden soll.<br /></li><li><strong class='bbc'>Host</strong> - Eigenschaft welche Zugriff auf den von dotNetBase.Windows.Forms.Aero.Wizard abgeleiteten Host bietet.<br /></li><li><strong class='bbc'>validatePage</strong> - Virtuelle Methode welche überschrieben werden kann um die Eingaben auf der wizardPage zu validieren. Wird <em class='bbc'>True</em> zurückgegeben, wird zur nächsten Seite gewechselt, andernfalls wird der Seitenwechsel abgebrochen.<br /></li><li><strong class='bbc'>setData</strong> - Virtuelle Methode welche überschrieben werden kann, um auf der wizardPage mit den aus dem Dictionary&lt;object, object&gt; <em class='bbc'>Data</em> übergebenen Daten Controls oder Variablen initialisieren zu können.<br /></li><li><strong class='bbc'>getData</strong> - Virtuelle Methode welche überschrieben werden kann, um mit einem Dictionary&lt;object, object&gt; Daten an die nächste Seite oder den Host weiterzugeben.</li></ul><br />
<span style='color: #ff0000'><strong class='bbc'>Wichtig!</strong> Zur Verwendung des Wizard bitte die Demoanwendung im angehangenen Archiv "Demo.zip" anschauen und erst <span class='bbc_underline'>danach</span> Fragen zur Verwendung stellen, sofern diese dann noch existieren!</span></li></ul><br />
<br />
<span style='font-size: 15px;'>Screenshots</span><br />
dotNetBase.Windows.Forms.Aero.Wizard<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-116-1268464895,6783' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=116" title="Wizard.png -  64,19K,  165"><img src="http://dotnetbase.de/uploads/monthly_10_2009/post-5-12562152233621_thumb.png" id='ipb-attach-img-116-1268464895,6783' style='width:100;height:89' class='attach' width="100" height="89" alt="" /></a><br />
<br />
dotNetBase.Windows.Forms.commandButton<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-119-1268464895,6894' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=119" title="commandButtons.png -  5,83K,  161"><img src="http://dotnetbase.de/uploads/monthly_10_2009/post-5-12564046518862_thumb.png" id='ipb-attach-img-119-1268464895,6894' style='width:100;height:49' class='attach' width="100" height="49" alt="" /></a><br />
<br />
dotNetBase.Windows.Forms.sevenToolStripRenderer<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-118-1268464895,6859' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=118" title="7Renderer.png -  16,19K,  153"><img src="http://dotnetbase.de/uploads/monthly_10_2009/post-5-12564046508519_thumb.png" id='ipb-attach-img-118-1268464895,6859' style='width:100;height:61' class='attach' width="100" height="61" alt="" /></a><br />
<br />
dotNetBase.Windows.Forms.switchButton<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-205-1268464895,6926' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=205" title="switchButton.png -  6,2K,  105"><img src="http://dotnetbase.de/uploads/monthly_01_2010/post-5-12624250757101_thumb.png" id='ipb-attach-img-205-1268464895,6926' style='width:100;height:58' class='attach' width="100" height="58" alt="" /></a><br />
<br />
dotNetBase.Windows.Forms.colorDialog<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-265-1268464895,6714' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=265" title="colordialog.png -  35,21K,  83"><img src="http://dotnetbase.de/uploads/monthly_01_2010/post-5-1264970716,8574_thumb.png" id='ipb-attach-img-265-1268464895,6714' style='width:100;height:70' class='attach' width="100" height="70" alt="" /></a><br />
<br />
dotNetBase.Windows.Forms.progressOverlay<br />
<a class='resized_img' rel='lightbox[523]' id='ipb-attach-url-284-1268464895,6964' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=284" title="progressOverlay.png -  28,84K,  45"><img src="http://dotnetbase.de/uploads/monthly_02_2010/post-5-1265881610,772_thumb.png" id='ipb-attach-img-284-1268464895,6964' style='width:100;height:72' class='attach' width="100" height="72" alt="" /></a><br />
<br />
Cheerio]]></description>
		<pubDate>Fri, 12 Mar 2010 08:21:04 +0000</pubDate>
		<guid>http://dotnetbase.de/net-base-ui-framework-t117.html</guid>
	</item>
	<item>
		<title>EXE-Dateien schreiben</title>
		<link>http://dotnetbase.de/exe-dateien-schreiben-t494.html</link>
		<description><![CDATA[Hallo an alle,<br />
<br />
vorweg, ich hab mich lange nicht mehr gemeldet, da ich momentan schulisch ziemlich ausgelastet bin (geht so langsam in Richtung Qualifikationsphase) und mich in der letzten Zeit auch ein bisschen mit der Programmierung für den Mac beschäftigt habe, wobe ich anmerken möchte, dass Objective-C eine ganz schön harte Nuss ist <img src='http://dotnetbase.de/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' /> Ich möchte mich hiermit zurückmelden und hoffe, dass ich in Zukunft auch wieder mehr Zeit für .NET und natürlich für das Forum finde.<br />
<br />
Also, zu meinem eigentlichen Anliegen. Ihr könnt mich für verrückt halten; vielleicht funktioniert das, was ich vorhab ja überhaupt nicht, das müsst ihr mir nur sagen. Inzwischen wollte ich das "Projekt" schon fast wieder verwerfen, aber diese Sache beschäftigt mich schon länger und ich finde keine Antwort dafür. Ich habe also in den letzten Tagen mal aus Langeweile eine .NET-Exe ins Notepad geschmissen und dort diese "UAC Manifest Options" in XML-Form gefunden, also die Informationen die der Benutzerkontensteuerung sagen, ob das Programm mit Administratorrechten gestartet werden muss oder eben nicht.<br />
<br />
Da kam mir die Idee, doch mal ein kleines Tool zu schreiben, mit denen man diese Anweisungen in der EXE ändern kann. Ich stelle es mir nützlich vor, denn man kann beispielsweise Programmen, die man nicht mit Administratorrechten öffnen will (diese aber verlangen), diese Anweisung entziehen. Andersherum natürlich auch, damit man Programmen ständig Adminrechte übergeben kann, ohne den Umweg über das Kontextmenü machen zu müssen.<br />
<br />
Also hab ich mich mal rangemacht und ein Programm geschrieben, das beim Öffnen die Anwendung analysiert und den aktuellen UAC-Status anzeigt, den der Benutzer dann komfortabel ändern kann. Dafür soll das Programm die Anwendung auslesen und in der betreffenden Zeile beispielsweise das "asInvoker" in "highestAvailable" ändern. Das ganze wird dann in eine zweite Anwendung geschrieben. Und das ist der Punkt an dem es hakt. Durch die anscheinend sehr exotische Enkodierung von EXE-Dateien kommt aus dem StreamWriter nur kompletter Schwachsinn raus, den Windows selbstverständlich nicht ausführen kann. Ich habe auch schon die unterschiedlichsten Encoding-Einstellungen probiert, welche das Ergebnis am Ende noch schlimmer aussehen ließen.<br />
<br />
Hier auch noch mal der (wahrscheinlich versaute) Quelltext des "Writers". Ich weiß, dass sich mein Codingstil im Laufe der Jahre nicht wirklich merklich verbessert hat, wenn ich das so sagen darf <img src='http://dotnetbase.de/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' /><br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>    Private Sub Writer_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles Writer.DoWork
        If IO.Directory.Exists(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "&#092;Administratorizer") = False Then
            IO.Directory.CreateDirectory(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "&#092;Administratorizer")
        End If
        Dim readline As String = ""
        Dim dontAnalyzeThisLine As Boolean = False
        Using readApplication As IO.StreamReader = New IO.StreamReader(applicationPath)
            Using writeApplication As IO.StreamWriter = New IO.StreamWriter(My.Computer.FileSystem.SpecialDirectories.CurrentUserApplicationData & "&#092;Administratorizer&#092;temp.exe")
                While Not readApplication.EndOfStream
                    readline = readApplication.ReadLine()
                    If readline.IndexOf("&lt!--") &lt;&gt; -1 Then
                        dontAnalyzeThisLine = True
                    End If
                    If readline.IndexOf("--&gt;") &lt;&gt; -1 Then
                        dontAnalyzeThisLine = False
                    End If
                    If readline.IndexOf("&lt;requestedExecutionLevel") &lt;&gt; -1 And dontAnalyzeThisLine = False Then
                        readline = readline.Replace(Chr(34) & "asInvoker" & Chr(34), "").Replace(Chr(34) & "requireAdministrator" & Chr(34), "").Replace(Chr(34) & "highestAvailable" & Chr(34), "")
                        If applyAdminRights = True Then
                            readline = readline.Replace("level=", "level=" & Chr(34) & "highestAvailable" & Chr(34))
                        Else
                            readline = readline.Replace("level=", "level=" & Chr(34) & "asInvoker" & Chr(34))
                        End If
                    End If
                    writeApplication.WriteLine(readline)
                End While
                writeApplication.Close()
            End Using
            readApplication.Close()
        End Using    End Sub</pre></div><br />
<br />
Also, vielleicht habt ihr ne Idee wie es vielleicht besser klappt und kein Kauderwelsch am Ende rauskommt. Oder mag der StreamWriter/StreamReader EXE-Dateien überhaupt nicht? Eventuell funktioniert mein Vorhaben sowieso nicht, ich würde aber trotzdem gerne die Sache mit dem StreamWriter klären.<br />
<br />
Ich bin dankbar für alle Antworten!<br />
Viele Grüße,<br />
whs<br />
<br />
<style type="text/css">
.offtopic{
	background-color: #f0f0f0;
	color: #515151;
	font-size: 0.9em;
	line-height: 120%;
	padding: 10px;
	/*margin-top: 10px;*/
    border-top: 1px solid #7E7E7E;
    border-bottom: 1px solid #7E7E7E;
    border-right: 1px solid #7E7E7E;
    border-left: 5px solid #7e7e7e;
}
</style>
<div class="offtopic"><p><strong>Ich muss diesen OffTopic-Kommentar loswerden:</strong></p>
Hoffentlich ist das nur in der Vorschau so, oder ist das Syntax Highlight vom VB-Tag kaputt?<br />
EDIT: Nach dem Abschicken klappts perfekt. Hat sich erledigt <img src='http://dotnetbase.de/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' />
</div><br />
]]></description>
		<pubDate>Thu, 11 Mar 2010 20:43:05 +0000</pubDate>
		<guid>http://dotnetbase.de/exe-dateien-schreiben-t494.html</guid>
	</item>
	<item>
		<title>Graue Leiste, aber wie?</title>
		<link>http://dotnetbase.de/graue-leiste-wieb-t447.html</link>
		<description><![CDATA[Hi,<br />
<br />
ich würde in einem Dialog gerne so ne graue Leiste designen wie auf <a href='http://nsis.sourceforge.net/File:NSISScreenshot1.png' class='bbc_url' title='Externer Link' rel='nofollow external'>diesem Screenshot</a> vom Nullsoft Install System (unten wo "Nullsoft Install System - build bla bla" steht).<br />
Gibt es da ein Control oder muss ich das selber machen? Wahrscheinlich selber, aber vlt. gibt es ja was fertiges? Dann brauch ich das Rad nicht neu erfinden.<br />
Wenn nicht: Geht das mit GDI+? .DrawString("string") und dann?<br />
<br />
<br />
wsl]]></description>
		<pubDate>Thu, 11 Mar 2010 19:22:58 +0000</pubDate>
		<guid>http://dotnetbase.de/graue-leiste-wieb-t447.html</guid>
	</item>
	<item>
		<title><![CDATA[Überprüfen ob Schnittmenge zweier &#34;Regions&#34; existiert]]></title>
		<link>http://dotnetbase.de/ueberpruefen-ob-schnittmenge-zweier-regions-t489.html</link>
		<description><![CDATA[Hallo,<br />
<br />
will man mit GDI+ überprüfen, ob sich zwei "Rectangles" überschneiden, kann man diese<br />
Funktion zur Hilfe ziehen:<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'>bool foo = rectangleA.IntersectsWith(rectangleB);</pre></div><br />
<br />
Gibt es auch eine Möglichkeit das bei "Regions" herauszufinden?<br />
<br />
mfg vredesbyrd]]></description>
		<pubDate>Thu, 11 Mar 2010 17:58:54 +0000</pubDate>
		<guid>http://dotnetbase.de/ueberpruefen-ob-schnittmenge-zweier-regions-t489.html</guid>
	</item>
	<item>
		<title>.NetBase Corporate Design</title>
		<link>http://dotnetbase.de/netbase-corporate-design-t244.html</link>
		<description><![CDATA[Hi,<br />
<br />
TeamTaken hat mich auf das Thema aufnerksam gemacht. Wenn ich richtig darüber nachdenke fände ich es super wenn man hier das Logo zur verfügung stellen könnte. Damit wir das in Projekte und in Signaturen einbetten können. Gerne auch andere Materialien die man verwenden könnte. Wäre das möglich Maximilian?  <img src='http://dotnetbase.de/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' /> <br />
<br />
Gruß<br />
<br />
<style type="text/css">
.postedit{
border-top: 1px solid #C8DEF4;
border-bottom: 1px solid #C8DEF4;
border-right: 1px solid #C8DEF4;
border-left: 4px solid #C8DEF4; /*border-bottom: 0;*/
font-family: Calibri,Verdana,Courier New, Courier, monospace;
font-size: 14px;
padding: 5px;
height: auto;
width: 95%;
}
</style>
<div class="postedit"><strong>Edit <em>Dennis Alexander</em></strong><br />
<br />
<br />
Ich habe das Thema mal gepinnt und es wird für Werbematerialien für uns genutzt.<br />
In dem Thema finden sich Texte, Grafiken und vieles mehr um für uns zu werben.<br />
<br />
An dieser Stelle ein dankeschön.<br />

</div>]]></description>
		<pubDate>Thu, 11 Mar 2010 16:34:04 +0000</pubDate>
		<guid>http://dotnetbase.de/netbase-corporate-design-t244.html</guid>
	</item>
	<item>
		<title>Treenode in einer Treenodecollection verschieben</title>
		<link>http://dotnetbase.de/treenode-treenodecollection-verschieben-t492.html</link>
		<description><![CDATA[Hallo,<br />
<br />
ich hatte versucht einen Treenode via DragDrop zu verschieben.<br />
Der zu verschiebende TreeNode ist einer der untersten Ebene.<br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Me.TreeView.Nodes</pre></div><br />
<br />
Folgender Versuch schlug fehl<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Dim tnc As TreeNodeCollection = Me.TreeViewOverview.Nodes
tnc.Insert(indexDest, sourcenode) 
tnc.Remove(sourcenode)</pre></div><br />
<br />
Folgender Versuch klappte<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Dim tnc As TreeNodeCollection = Me.TreeViewOverview.Nodes
tnc.Remove(sourcenode) 
tnc.Insert(indexDest, sourcenode)</pre></div><br />
<br />
Warum ?<br />
<br />
Gruss<br />
<br />
mikeb69]]></description>
		<pubDate>Thu, 11 Mar 2010 15:50:20 +0000</pubDate>
		<guid>http://dotnetbase.de/treenode-treenodecollection-verschieben-t492.html</guid>
	</item>
	<item>
		<title>Zugriff mit System.Reflection auf DLLs</title>
		<link>http://dotnetbase.de/zugriff-systemreflection-dlls-t151.html</link>
		<description>Wie kann ich mit System.Reflection auf die Propertys einer DLL zugreifen, also lesen und schreiben.</description>
		<pubDate>Thu, 11 Mar 2010 14:53:51 +0000</pubDate>
		<guid>http://dotnetbase.de/zugriff-systemreflection-dlls-t151.html</guid>
	</item>
	<item>
		<title>Prozessfortschritt mit Zeit</title>
		<link>http://dotnetbase.de/prozessfortschritt-zeit-t467.html</link>
		<description><![CDATA[Hallo, ich habe folgenden Code:<br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Imports System.IO
Public Class Form1

	Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 	For Each i As Control In Me.Controls
 	For Each j As Control In i.Controls
 	For Each k As Control In j.Controls
 	For Each l As Control In k.Controls
 	If TypeOf (l) Is Button Then
 	l.Enabled = False
 	End If
 	Next
 	If TypeOf (k) Is Button Then
 	k.Enabled = False
 	End If
 	Next
 	If TypeOf (j) Is Button Then
 	j.Enabled = False
 	End If
 	Next
 	If TypeOf (i) Is Button Then
 	i.Enabled = False
 	End If
 	Next
 	Dim doith As New System.Threading.Thread(AddressOf DoIt)
 	doith.Start()
	End Sub
	Private Function DoIt()
 	MsgBox("Please wait")
 	Me.Cursor = Cursors.WaitCursor
 	Dim Progress As Integer = 0
 	Dim OneFileProcess As Double = 675 / 100

 	Dim DirInfo As New DirectoryInfo("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss")
 	Dim FileInfos() As FileInfo = DirInfo.GetFiles("5_*")
 	Dim FileNumber As Integer = 0
 	Dim RFileNumber As Integer = 1
 	' 	Progress = ((1 * 2) / (675 / 2)) * 25
 	ProgressBar1.Value = Progress
 	Label5.Text = Progress.ToString & "%"
 	If Directory.Exists("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched") = True Then
 	' Dim DeleteInfo As New DirectoryInfo("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched")
 	' Dim DeleteInfo2() As FileInfo = DirInfo.GetFiles("")
 	'For deleteint As Integer = 0 To DeleteInfo2.Length - 1
 	'Next
 	Dim DeleteList As List(Of String) = GetFileList("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched", True)
 	Dim DeleteArray() As String = DeleteList.ToArray
 	For ii As Integer = 0 To DeleteArray.Length - 1
 	File.Delete(DeleteArray(ii))
 	Next
 	Directory.Delete("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched")

 	wait(2000)
 	End If
 	Directory.CreateDirectory("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched")
 	wait(2000)

 	For i As Integer = 0 To FileInfos.Length - 1
 	If FileNumber &lt; 10 Then
 	File.Copy("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;5_00" & FileNumber, "D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched&#092;land_data_release_00" & FileNumber)
 	Else
 	If FileNumber = 10 Then
 	File.Copy("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;5_0" & FileNumber, "D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched&#092;land_data_release_0" & FileNumber)
 	Else
 	If FileNumber &gt; 10 And FileNumber &lt; 100 Then
 	File.Copy("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;5_0" & FileNumber, "D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched&#092;land_data_release_0" & FileNumber)
 	Else
 	If FileNumber = 100 Then
 	File.Copy("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;5_" & FileNumber, "D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched&#092;land_data_release_" & FileNumber)
 	Else
 	If FileNumber &gt; 100 Then
 	File.Copy("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;5_" & FileNumber, "D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched&#092;land_data_release_" & FileNumber)
 	Else
 	If FileNumber &gt; 999 Then
 	MsgBox("Files with a number over 999 are not supported!")
 	End If
 	End If
 	End If
 	End If
 	End If
 	End If
 	FileNumber += 1
 	RFileNumber += 1
 	Label4.Text = (Convert.ToString(RFileNumber - 1))
 	Label2.Text = (Convert.ToString(FileNumber - 1))
 	Progress = ((RFileNumber * 2) / (675 / 2)) * 25
 	ProgressBar1.Value = Progress
 	Label5.Text = Progress & "%"
 	Next
 	For Each ii As Control In Me.Controls
 	For Each j As Control In ii.Controls
 	For Each k As Control In j.Controls
 	For Each l As Control In k.Controls
 	If TypeOf (l) Is Button Then
 	l.Enabled = True
 	End If
 	Next
 	If TypeOf (k) Is Button Then
 	k.Enabled = True
 	End If
 	Next
 	If TypeOf (j) Is Button Then
 	j.Enabled = True
 	End If
 	Next
 	If TypeOf (ii) Is Button Then
 	ii.Enabled = True
 	End If
 	Next
 	Me.Cursor = Cursors.Default
	End Function
	Private Sub wait(ByVal interval As Integer)
 	Dim sw As New Stopwatch
 	sw.Start()
 	Do While sw.ElapsedMilliseconds &lt; interval
 	' Allows UI to remain responsive
 	Application.DoEvents()
 	Loop
 	sw.Stop()
	End Sub
	Public Shared Function GetFileList(ByVal Root As String, Optional ByVal SubFolders As Boolean = True) As List(Of String)
 	Dim FileList As New List(Of String)
 	SeekFiles(Root, FileList, SubFolders)
 	Return FileList
	End Function
	Private Shared Sub SeekFiles(ByVal Root As String, ByRef FileArray As List(Of String), ByVal SubFolders As Boolean)
 	Try
 	Dim Files() As String = System.IO.Directory.GetFiles(Root)
 	Dim Folders() As String = System.IO.Directory.GetDirectories(Root)

 	For i As Integer = 0 To UBound(Files)
 	FileArray.Add(Files(i).ToString)
 	Next

 	If SubFolders = True Then
 	For i As Integer = 0 To UBound(Folders)
 	SeekFiles(Folders(i), FileArray, SubFolders)
 	Next
 	End If
 	Catch Ex As Exception
 	End Try
	End Sub

	Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
 	CheckForIllegalCrossThreadCalls = False
	End Sub
	Private Function DoCheck()
 	Me.Cursor = Cursors.WaitCursor
 	Dim CheckList As List(Of String) = GetFileList("D:&#092;Eigene Dateien&#092;GP4Map&#092;Land_data_release_hgss&#092;dppatched", True)
 	Dim CheckArray() As String = CheckList.ToArray
 	For i As Integer = 0 To CheckArray.Length - 1
 	If CheckArray(i).Contains("land") = False Then
 	MsgBox(CheckArray(i) & " is false")
 	End If
 	Next
 	' 	MsgBox(CheckArray.Length & vbCrLf & CheckArray.Length - 1)
 	Me.Cursor = Cursors.Default()
	End Function
	Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
 	MsgBox("Please wait")
 	Dim th As New Threading.Thread(AddressOf DoCheck)
 	th.Start()
	End Sub
End Class
</pre></div><br />
<br />
Mein Code zum berechnen sieht so aus:<br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Progress = ((RFileNumber * 2) / (675 / 2)) * 25 'RFileNumber ist die momentane DateiNummer und 675/2 wiel es immer 675 Dateien sind</pre></div><br />
Leider hatten wir in der 5. Klasse noch keine Prozentrechnung. Das funktioniert zwar einigermaßen, abe ich glaube es ist falsch...<br />
Wie macht man es richtig mit Restzeitangabe und richtiger Prozentrechnung?<br />
<br />
Mfg<br />
raupy]]></description>
		<pubDate>Thu, 11 Mar 2010 14:46:25 +0000</pubDate>
		<guid>http://dotnetbase.de/prozessfortschritt-zeit-t467.html</guid>
	</item>
	<item>
		<title>Windows Ribbon</title>
		<link>http://dotnetbase.de/windows-ribbon-t158.html</link>
		<description><![CDATA[Auf CodePlex.com hat sich einer die Mühe gemacht und einen .NET 2.0 Wrapper für das Ribbon Interface von Windows 7 geschrieben. Die Verwendung ist nicht so einfach aber das Resultat sieht ganz (.)Net(t) aus <img src='http://dotnetbase.de/public/style_emoticons/default/smile.gif' class='bbc_emoticon' alt=':)' /><br />
<br />
<a class='resized_img' rel='lightbox[740]' id='ipb-attach-url-111-1268464895,9417' href="http://dotnetbase.de/index.php?app=core&module=attach&section=attach&attach_rel_module=post&attach_id=111" title="windowsribbon.png -  52,27K,  89"><img src="http://dotnetbase.de/uploads/monthly_10_2009/post-5-12561946770582_thumb.png" id='ipb-attach-img-111-1268464895,9417' style='width:100;height:50' class='attach' width="100" height="50" alt="" /></a><br />
<br />
Das ganze befindet sich noch im Alphastadium, den Download und Quellcode gibts hier:<br />
<a href='http://windowsribbon.codeplex.com/' class='bbc_url' title='Externer Link' rel='nofollow external'>Windows Ribbon</a>]]></description>
		<pubDate>Thu, 11 Mar 2010 13:37:45 +0000</pubDate>
		<guid>http://dotnetbase.de/windows-ribbon-t158.html</guid>
	</item>
	<item>
		<title>Text in Progressbar</title>
		<link>http://dotnetbase.de/text-progressbar-t461.html</link>
		<description><![CDATA[Hallo zusammen,<br />
<br />
ich versuche schon seit längerem einen Text in einen ProgressBar zu bekommen. Leider vergebens.. <br />
msdn und google helfen mir nicht wirklich weiter.. Habe gelesen das dies angeblich nur mit einem eigens dafür erstelltem steuerelement funktionieren würde.<br />
Gibt es da keine bessere lösung??<br />
<br />
<br />
Vorab danke für Hilfe!!<br />
<br />
ihmSelbst]]></description>
		<pubDate>Thu, 11 Mar 2010 13:27:32 +0000</pubDate>
		<guid>http://dotnetbase.de/text-progressbar-t461.html</guid>
	</item>
	<item>
		<title>Hinzufügen von Controls funktioniert nicht mehr</title>
		<link>http://dotnetbase.de/hinzufuegen-controls-funktioniert-mehr-t455.html</link>
		<description><![CDATA[Hi,<br />
<br />
ich schreibe grade einen kleinen Wizard. Ich hab dabei mehrere UserControls mit den einzelnen WizardPages und die werden in ein Panel geaddet.<br />
Problem: Das Hinzufügen funktioniert nicht. Und auch kein Panel.Controls.Clear();<br />
Ich probier jetzt schon seit vorgestern mit x verschiedenen Wegen dieses Problem zu lösen und bin jetzt zu einer fast funktionierenden Lösung gekommen.<br />
Hier der Code:<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'>
public class frmMain {
public event OnNextWizardPageHandler nextpage;
private void button1_Click(object sender, EventArgs e)
{

 	string nextp = string.Empty;
 	UserControl uc = pnlContent.Controls.Find(this.uckey, false)&#91;0&#93; as UserControl;
 	if(uc.Name == "wzpStart")
 	nextp = "wzpUserData";

 	if(uc.Name == "wzpUserData")
 	nextp = "wzpSend";

 	nextpage(this, new OnNextWizardPageArgs(nextp));
}
private string _uckey = string.Empty;
 	public string uckey
 	{
 	set { _uckey = value; }
 	get { return (_uckey); }
 	}

 	public void setPage(UserControl uc)
 	{
 	pnlContent.Controls.Clear();
 	pnlContent.Controls.Add(uc);
 	}
}


public delegate void OnNextWizardPageHandler(object sender, OnNextWizardPageArgs e);

	public class OnNextWizardPageArgs : ExceptionTrackerDialogBase
	{
 	public OnNextWizardPageArgs(string currentpage)
 	{
 	this.changeWizardPage(currentpage);
 	
 	}
	}

public class ExceptionTrackerDialogBase {
 public void changeWizardPage(string page)
 	{

 	
 	if (page == "FirstwzpStart")
 	{
 	frm.uckey = "wzpUserData";
 	frm.setPage(pageStart);
 	
 	
 	}
 	if (page == "wzpStart")
 	{
 	frm.setPage(pageStart);
 	frm.uckey = "wzpUserData";
 	}
 	
 	if (page == "wzpUserData")
 	{
 	
 	frm.setPage(pageSend);
 	frm.uckey = "wzpSend";
 	} 
 	

}
</pre></div><br />
Der Plan ist folgernder:<br />
Es gibt 3 WizardSeiten, die werden statisch in den Code implementiert. Beim Klicken auf einen Button soll die aktuelle Seite aus dem Panel gelöscht und die neue geladen werden. Um zu wissen, welche Seite als nächstes geladen werden soll, gibt es die Eigenschaft "uckey" in der Form. Die ändert sich auch, allerdings bleibt die aktuelle Seite da und die andere wird auch nicht hinzugefügt. Normalerweise geht Panel.Controls.Add() doch immer? Beim ersten Laden der frmMain wird changeWizardPage() auch aufgerufen und es funktioniert. Der uckey wird geändert und dann passiert nichts! Beim Durchlaufen der ganzen Controls in dem betreffenden Panel wird auch nur die erste WizardSeite ausgegeben. Warum funktioniert das Hinzufügen von Controls auf einmal nicht mehr, genauso wenig das Löschen? Wie gesagt, ich probier schon seit zwei Tagen daran herum, finde den Fehler aber nicht... Was ist da los?<br />
<br />
<br />
wsl]]></description>
		<pubDate>Wed, 10 Mar 2010 20:58:56 +0000</pubDate>
		<guid>http://dotnetbase.de/hinzufuegen-controls-funktioniert-mehr-t455.html</guid>
	</item>
	<item>
		<title>Eigene Antwort auch nach Lesen noch als neu markiert</title>
		<link>http://dotnetbase.de/eigene-antwort-lesen-noch-neu-t488.html</link>
		<description><![CDATA[Hallo,<br />
<br />
mir ist aufgefallen, dass, wenn man selbst eine Antwort zu einem Thema schreibt/ein neues Thema erstellt, die Antwort als neu markiert wird. Dann schaut man sich die Antwort/das neue Thema an, geht wieder auf die Startseite und es ist immer noch als neu markiert.<br />
Wenn man unten auf "Forum als gelesen markieren" klickt, wirds auch als gelesen markiert.<br />
<br />
Ist das ein neues Feature oder ein neuer bug? <img src='http://dotnetbase.de/public/style_emoticons/default/wink.gif' class='bbc_emoticon' alt=';)' /><br />
<br />
<br />
wsl]]></description>
		<pubDate>Wed, 10 Mar 2010 20:57:22 +0000</pubDate>
		<guid>http://dotnetbase.de/eigene-antwort-lesen-noch-neu-t488.html</guid>
	</item>
	<item>
		<title>XML-Dokument auslesen (lokale Datei)</title>
		<link>http://dotnetbase.de/xml-dokument-auslesen-lokale-datei-t480.html</link>
		<description><![CDATA[Guten Abend,<br />
<br />
Ich habe folgendes Problem:<br />
<br />
Ich schreibe an einem Programm, das mit Profilen arbeiten soll. Da nur sehr wenige Daten zu den Profilen gespeichert werden sollen, habe ich an eine XML-Datei gedacht.<br />
Gesagt, getan. Testweise eine XML-Datei erstellt, die der Struktur entspricht, die später vom Programm erstellt werden soll.<br />
<br />
Beispiel:<br />
<br />
<pre class='prettyprint'>
&lt;profile&gt;
 &lt;profil name="standard"&gt;
 	&lt;site name="Google" url="http://www.google.de" /&gt;
 	&lt;site name="Yahoo" url="http://www.yahoo.de" /&gt;
 	...
 &lt;/profil&gt;
 &lt;profil name="test"&gt;
 	&lt;site name="Google" url="http://www.google.de" /&gt;
 	&lt;/profil&gt;
 	...
&lt;/profile&gt;
</pre><br />
<br />
Die Namen der Profile sollen in einer List-Box angezeigt werden und die Namen der Seiten sollen Checkboxen aktivieren, wenn das jeweilige Profil selektiert wird.<br />
<br />
Ich habe es schon mit der .Net-internen Klasse versucht, komme damit aber überhaupt nicht klar.<br />
Gibt es da noch eine andere Möglichkeit, das zu realisieren?<br />
<br />
Ich bin für jede Hilfe dankbar :-D<br />
<br />
<br />
<br />
Eine gute Nacht noch wünscht Sebastian<br />
<br />
<style type="text/css">
.offtopic{
	background-color: #f0f0f0;
	color: #515151;
	font-size: 0.9em;
	line-height: 120%;
	padding: 10px;
	/*margin-top: 10px;*/
    border-top: 1px solid #7E7E7E;
    border-bottom: 1px solid #7E7E7E;
    border-right: 1px solid #7E7E7E;
    border-left: 5px solid #7e7e7e;
}
</style>
<div class="offtopic"><p><strong>Ich muss diesen OffTopic-Kommentar loswerden:</strong></p>
Ein XML-Tag wäre ganz nützlich :-) oder HTML, wenn es keinen für XML gibt...
</div>]]></description>
		<pubDate>Wed, 10 Mar 2010 20:14:32 +0000</pubDate>
		<guid>http://dotnetbase.de/xml-dokument-auslesen-lokale-datei-t480.html</guid>
	</item>
	<item>
		<title>Mutex Problem</title>
		<link>http://dotnetbase.de/mutex-problem-t486.html</link>
		<description><![CDATA[Hallo,<br />
ich hab ein Problem mit den Mutex.<br />
<br />
Anfangs wirkte es gar ned, inzwischen hab ichs geschafft, dass jede weitere Instanz sofort abkackt (keine Meldung).<br />
<br />
Hier mein Code:<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'> 	internal static Mutex mutexInstance = null;
 	private const string MutexID = "tkmap";
 	&#91;STAThread&#93;
 	internal static void Main()
 	{
 	
 	try
 	{
 	mutexInstance = Mutex.OpenExisting(MutexID);
 	messageBoxEx.Show(null, "Instanzproblem", "Nur eine Instanz erlaubt!",
 	"Es läuft bereits eine Instanz von TKMap!", MessageBoxButtons.OK,
 	MessageBoxIcon.Exclamation);
 	Environment.Exit(0);
 	}
 	catch
 	{
 	mutexInstance = new Mutex(true, MutexID);
 	}</pre></div><br />
<br />
und am Ende von Main:<br />
<style type="text/css">.csharp{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="csharp"><strong>Visual C#</strong>
<pre class='prettyprint'> 	mutexInstance.ReleaseMutex(); 	Application.Run(Loader);</pre></div><br />
<br />
Angeblich (laut mehreren Tutorials) sollte man es genau so machen. So stands in jedem Tutorial gleich da.<br />
<br />
Aber mehr als ein "Funktioniert nicht mehr" kommt nicht. Nichtmal die "Only one Instance"-Meldung kommt...<br />
<br />
<br />
Danke<br />
R]]></description>
		<pubDate>Wed, 10 Mar 2010 16:12:25 +0000</pubDate>
		<guid>http://dotnetbase.de/mutex-problem-t486.html</guid>
	</item>
	<item>
		<title>Datenbankfehler in den Benutzerprofilen</title>
		<link>http://dotnetbase.de/datenbankfehler-benutzerprofilen-t487.html</link>
		<description><![CDATA[Beim Durchs-Profile-Klicken ist mir ein Fehler aufgefallen:<br />
<a href='http://img66.imageshack.us/img66/6260/133x.png' class='bbc_url' title='Externer Link' rel='nofollow external'><img src='http://img66.imageshack.us/img66/6260/133x.th.png' alt='Eingefügtes Bild' class='bbc_img' /></a><br />
Wie man sieht, kommt der Fehler nur, wenn man in einem Profil auf den Tab "Blog" klickt (hab es bei verschiedenen profilen getestet und es ist immer das gleiche).<br />
Der Header verfärbt sich dann auch:<br />
<a href='http://img63.imageshack.us/img63/3933/691.png' class='bbc_url' title='Externer Link' rel='nofollow external'><img src='http://img63.imageshack.us/img63/3933/691.th.png' alt='Eingefügtes Bild' class='bbc_img' /></a><br />
<br />
<br />
wsl]]></description>
		<pubDate>Wed, 10 Mar 2010 15:20:06 +0000</pubDate>
		<guid>http://dotnetbase.de/datenbankfehler-benutzerprofilen-t487.html</guid>
	</item>
	<item>
		<title>Datei an PHP senden ?</title>
		<link>http://dotnetbase.de/datei-php-senden-b-t474.html</link>
		<description><![CDATA[Hi Leute,<br />
<br />
Wie kann ich eine datei an ein php dokument senden, dass er die datei uploaded ?<br />
<br />
Mein formular (index.php)<br />
<br />
<br />
<pre class='prettyprint lang-html'>
&lt;form action="upload.php" method="post" enctype="multipart/form-data"&gt;
&lt;input type="file" name="datei"&gt;&lt;br&gt;
&lt;input type="submit" value="Hochladen"&gt;
&lt;/form&gt;
</pre><br />
die upload.php datei sieht so aus<br />
<br />
<br />
<pre class='prettyprint'>
&lt;?php
if(move_uploaded_file($_FILES&#91;'datei'&#93;&#91;'tmp_name'&#93;, $_FILES&#91;'datei'&#93;&#91;'name'&#93;)){echo "Die Datei".  basename( $_FILES&#91;'uploadedfile'&#93;&#91;'name'&#93;). 
    " wurde Hochgeladen";
} else{
    echo "Es wurde ein Fehler beim Hochladen der Datei festgestellt, bitte versuchen Sie es erneut!";
}
?&gt;
</pre><br />
<br />
Weil mit ftp will ich keine dateien hochladen.<br />
<br />
<br />
und mein vb code sieht so aus<br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>        Dim file As String = "C:&#092;test.jcode"
        Dim upload As New WebClient()
        upload.Headers.Add("Content-Type", "multipart/form-data")
        upload.UploadFileAsync(New Uri("http://localhost/upload/index.php"), "POST", file)</pre></div><br />
<br />
aber die datei wird nicht hochgeladen wo liegt mein fehler ?]]></description>
		<pubDate>Wed, 10 Mar 2010 14:45:13 +0000</pubDate>
		<guid>http://dotnetbase.de/datei-php-senden-b-t474.html</guid>
	</item>
	<item>
		<title>ProgressOverlay Problem</title>
		<link>http://dotnetbase.de/progressoverlay-problem-t483.html</link>
		<description><![CDATA[Hi ich versuche mich grade in das ProgressOverlay (.Net Base UI Framework) ein zu arbeiten, aber ich scheitere schon an einem einfachen download solange das programm downloaded soll das ProgressOverlay erscheinen und in der beschreibung den aktuellen status ausgeben soll und die Progressbar den aktuellen status.<br />
<br />
Was mach ich falsch ?<br />
<br />
<style type="text/css">.vbnet{background: #f0f0f0;border-top: 1px solid #7e7e7e;border-bottom: 1px solid #7e7e7e;border-right: 1px solid #7e7e7e;border-left: 4px solid #7e7e7e; /*border-bottom: 0;*/color: #464646;font-family: Calibri,Verdana,Courier New, Courier, monospace;font-size: 14px;margin: 4px auto 0 auto;padding: 3px;height: auto;width: 95%;margin: 0 auto 0 auto;}</style><div class="vbnet"><strong>Visual Basic.NET</strong>
<pre class='prettyprint lang-vb'>Imports System.Net

Public Class Form1
    Dim WithEvents downloader As New WebClient
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ProgressOverlay1.progressState = dotNetBase.Windows.Forms.ProgressBarState.Normal
        ProgressOverlay1.showOverlay()
        ProgressOverlay1.Worker.RunWorkerAsync()
    End Sub

    Private Sub BackgroundWorker1_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles BackgroundWorker1.DoWork
        downloader.DownloadFileAsync(New Uri("http://speedtest.netcologne.de/test_20mb.bin"), "Speedtest Netcologne.bin")
    End Sub

    Private Sub downloader_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles downloader.DownloadProgressChanged
        ProgressOverlay1.percentDone = e.ProgressPercentage
        ProgressOverlay1.Title = "Ich arbeite..."
        ProgressOverlay1.Description = (e.BytesReceived / 1024).ToString & " KB von " & (e.TotalBytesToReceive / 1024).ToString & " KB fertig."
    End Sub

    Private Sub DownloadFileCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs) Handles downloader.DownloadFileCompleted
        ProgressOverlay1.hideOverlay()
        downloader.Dispose()
    End Sub
End Class
</pre></div>]]></description>
		<pubDate>Tue, 09 Mar 2010 18:24:01 +0000</pubDate>
		<guid>http://dotnetbase.de/progressoverlay-problem-t483.html</guid>
	</item>
	<item>
		<title>Tutorial gesucht</title>
		<link>http://dotnetbase.de/tutorial-gesucht-t481.html</link>
		<description><![CDATA[Hey Leute, ich wusst jetzt ned genau wohin ich den Beitrag schreiben soll,<br />
deshalb hier mal meine Frage:<br />
Ich suche ein leichtverständliches Tutorial über WPF!!<br />
Kennt da jemand eins oder mehrere? <br />
Währe sehr nett über positive Rückmeldungen.<br />
Thx Mücke!!]]></description>
		<pubDate>Mon, 08 Mar 2010 19:08:20 +0000</pubDate>
		<guid>http://dotnetbase.de/tutorial-gesucht-t481.html</guid>
	</item>
</channel>
</rss>