Laden...
C
Benutzerbeschreibung
C#

Forenbeiträge von CyberHunter Ingesamt 131 Beiträge

11.10.2010 - 11:12 Uhr

Hallo zusammen,

Ich drucke in meiner Silverlight Anwendung ein Datagrid mit der PrintDocument Klasse.
Dazu habe ich eine Silverlight Seite die ich der Klasse übergebe.
Auf der Seite befindet sich nur das Datagrid das gedruckt wird, die Seite selber sieht der Benutzer nicht die wird nicht mit .Show() aufgerufen sondern lediglich zum Drucken verwendet.
Mein Problem ist nun aber das auf dem Druck immer die 1. Zelle des Grids selektiert ist.
Das ist optisch etwas unschön.

Auch wenn ich im Konstruktor nach dem befüllen des DataGrid die SelectedIndex Property auf -1 setzte bringt dies kein Erfolg.
Die 1. Zelle ist immer markiert.
ReadOnly=true; SelectedItem = null; habe ich auch schon versucht.

Hat jemand eine Idee wie ich das Problem lösen kann?
Kann man vlt. die "Border Thickness" des "Selection Border" auf 0 setzten??

Danke für eure Hilfe
CyberHunter

24.09.2010 - 11:10 Uhr

Danke für eure Antworten,
Ich habs mittlerweile zum laufen gebracht.
Finde nur das nun der Code sehr unübersichtlich und schwer zu lesen ist.
Das ganze sieht nun in etwa so aus:



_webservice.MethodeACompleted += (object s, eventargs e) =>
{
     //
     // ca. 100 Zeilen Code
    //
_webservice.MethodeBCompleted += (object s, eventargs e) =>
{
     //
     // ca. 100 Zeilen Code
    //
_webservice.MethodeCCompleted += (object s, eventargs e) =>
{
  //
  // ca. 100 Zeilen Code
  //
};
_webservice.MetdhodeCAsync();

};
_webservice.MethodeBAsync();

};
_webservice.MethodeAAsync();


Das ganze könnte ich nun bis zur MethodeK weiterführen.
So funktionierts nun, aber ich finde das sehr unübersichtlich und nicht ganz einfach zu lesen.

Danke
CyberHunter

23.09.2010 - 21:10 Uhr

Hallo Schlopp,

danke für deine Antwort.
Ja das ist eben das Problem das dieser Aufruf Asynchron von statten geht.
Die Schleife war nur ein Test der nicht funktioniert hat.
Mein Problem ist das die Messagebox immer 0 ausgibt weil wie es aussieht
die Methode "_webservice.getIDAsync("Bezeichnung")" erst ausgeführt wird wenn der Code im Button_Click Event fertig durchgelaufen ist.

Natürlich könnte ich die Messagebox hier schon ausführen:


_webservice.getIDCompleted += (object s, WebService.getIDEventArgs ea) =>
                {
                    idvalue = ea.Result;
                    Messagebox.Show(idvalue.ToString());
                };
            _webservice.getIDAsync("Bezeichnung");

Das funktioniert dann auch, jedoch will ich nicht die ID einfach in einer Messagebox ausgeben sondern noch einiges mehr.
Mit der ID sollen dann noch anderen Methoden anderer Klassen und auch Methoden vom Webservice Aufgerufen werden.

Danke
CyberHunter

23.09.2010 - 18:22 Uhr

Hallo zusammen,

Ich verwende in meiner Silverlight Anwendung diverse Methoden von einem ASP.NET Webservice.
Dazu stellt sich mir die Frage warum werden die Methoden standartmäßig in Silverlight überhaupt Asynchron aufgerufen?

Nun zu meinem konkreten Prolem:
Meine Webservice Methode "getID" gibt mir einen Int32 Wert zurück, diesen rufe ich so auf:



Int32 idvalue = 0;
bool inArbeit = true;

 _webservice.getIDCompleted += (object s, WebService.getIDEventArgs ea) =>
                {
                    idvalue = ea.Result;
                    inArbeit = false;
                   lblTest.Content = idvalue.ToString();
                };
            _webservice.getIDAsync("Bezeichnung");

while(inArbeit)
{
System.Diagnostics.Debug.WriteLine("warten....");
}

Messagebox.Show(idvalue.ToString());


Diesen Aufruf habe ich in enem Button_Click, wenn ich den Button klicke steht die ID sofort in meinem Test-Label (lblTest) (wenn ich die schleife + Messagebox danach nicht ausführe). Das dauert keine halbe sekunde.
Mit der Variabel "inArbeit" habe ich versucht mein problem zu lösen in dem ich warte bis die Methode fertig ist. Jedoch wird die Schleife nie beendet. Warum?
Wenn ich die Schleife weg lasse gibt mir die Messagebox immer 0 aus.
Wenn ich einen Breakpoint auf die folgende Zeile setze:


      inArbeit = false;

Wird dieser sofort nach dem Klick auf den Button erreicht.
Jedoch wir der Code mit der Messagebox immer vorher ausgeführt.
Mir kommt es so vor das die Methode "getID" erst durchgeführt wird wenn aller Code in meinem Button_Click Event ausgeführt wurde.
Habe auch schon versucht mit Thread.Sleep() vor der Messagebox zu warten, funzt aber auch nicht.
Wie schaffe ich es das mein Code wartet bis der Asynchrone aufruf fertig ist?
Oder kann ich die Methode Synchron wie aus einer Winform Anwendung aufrufen?

Danke für eure Hilfe
CyberHunter

15.09.2010 - 18:51 Uhr

Hallo zusammen,

In meinem WPF Projekt versuche ich einen Bericht mit Gruppierten Daten im ReportViewer Control zu erstellen.
Früher habe ich immer Crystal Reports verwendet, jedoch bekomme ich das Ding in VS2010 nicht zum laufen, nach Tagelangen versuchen probiere ich nun das mit dem ReportViewer umzusetzen.

Ich übergebe dem Bericht eine Datatable gefüllt mit Daten.
Nun möchte die Daten in etwa so angezeigt haben:



______________________________________________________________________
Firma XYZ                   Vorname               Nachname
______________________________________________________________________
IT-Abteilung                Max                   Mustermann
Verkauf                     Maria                 Musterfrau
Einkauf                     Josephine             Müller
______________________________________________________________________
Firma ZZZ                   Vorname               Nachname
______________________________________________________________________
IT-Abteilung                Maximilian            Mustermann
Verkauf                     Jutta                 Musterfrau
Einkauf                     Christina             Meyer



Kann mir jemand sagen wie ich den ReportViewre dazu bringe?
Habe schon alles möglich Versucht mit Spaltengruppen, Zeilengruppen, etc.
Ich bekomme es jedoch einfach nicht hin.
In CrystalReports müsste ich nur eine "Group Header Section" einfügen aber
das funktioniert hier wohl anders.

Danke für eure Hilfe
CyberHunter

09.09.2010 - 17:41 Uhr

Ich bekomme keine Version zum laufen.
Hat jemand von euch das Ding in VS2010 zum laufen gebracht?

Danke
CyberHunter

09.09.2010 - 16:13 Uhr

Hallo zusammen,

Ich musste die letzten Tage festelstellen das Crystal Reports nicht mehr standardmäßig bei VS 2010 pro dabei ist.
Wenn ich einen Crystal Reports Bericht in mein Projekt einfüge bekomme statt der rpt Datei eine Datei namens "CrystalReport1.mht".
In dieser Datei ist ein Download für Crystal Reports.
Ich habe dieses Teil nun schon mehrere male installiert und auch genau die Installationsanleitung befolgt. Jedoch bekomme ich es nicht hin das ich nun Crystal Reports verwenden kann.

Hat jemand eine Idee wie ich das Problem lösen kann?

Danke für eure Hilfe
CyberHunter

07.09.2010 - 22:54 Uhr

Hallo MichlG,

Das wars!!
Vielen Vielen Dank, du hast mir sehr geholfen!
Nun kann ich endlich beruhigt meinen Rechner herunterfahren und ne mütze schlafen 🙂

07.09.2010 - 21:05 Uhr

Ich habe nun ein kleines beispiel erstellt wo mein Problem vlt. besser ersichtlich ist.
Ich poste nun den gesamten Code in der Hoffnung das mir jemand helfen kann, da ich wirklich nicht mehr durchblicke woher das Problem kommen soll:

Klasse Artikel:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HierarchicalDataTemplate
{
    public class Artikel
    {
        public Artikel() { }

        public string Name { get; set; }
    }
}

Klasse Unterkategorie:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HierarchicalDataTemplate
{
    public class Unterkategorie
    {
        private List<Artikel> _list;

        public Unterkategorie() { _list = new List<Artikel>(); }

        public string Name { get; set; }

        public List<Artikel> Artikelgruppe 
        {
            get { return _list; }
            set { _list = value; }
        }
    }
}

Klasse Hauptkategorie:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HierarchicalDataTemplate
{
    public class Hauptkategorie
    {
        List<Unterkategorie> _list;

        public Hauptkategorie() { _list = new List<Unterkategorie>(); }

        public string Name { get; set; }

        public List<Unterkategorie> Unterkategorien 
        {
            get { return _list; }
            set { _list = value; }
        }
    }
}

MainWindow.xaml:


<Window x:Class="HierarchicalDataTemplate.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:HierarchicalDataTemplate;assembly=HierarchicalDataTemplate"
        Title="MainWindow" Height="350" Width="525">

    <Grid>
        <TreeView ItemsSource="{Binding Hauptkategorien}" Width="220" Name="tv">
            <TreeView.Resources>
                <HierarchicalDataTemplate DataType="{x:Type local:Hauptkategorie}" ItemsSource="{Binding Unterkategorien}">
                    <TextBlock Text="{Binding Name}" />

                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type Unterkategorie}" ItemsSource="{Binding Artikelgruppe}">
                    <TextBlock Text="{Binding Name}" />

                </HierarchicalDataTemplate>
                <HierarchicalDataTemplate DataType="{x:Type Artikel}">
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Name}" />
                    </StackPanel>
                </HierarchicalDataTemplate>

            </TreeView.Resources>
        </TreeView>
    </Grid>
</Window>

Und in folgender Zeile bekomme ich die Fehlermeldung:
"Von dem Typverweis kann kein öffentlicher Typ mit dem Namen "Hauptkategorie" gefunden werden. Zeile 10 Position 124."


 <HierarchicalDataTemplate DataType="{x:Type local:Hauptkategorie}" ItemsSource="{Binding Unterkategorien}">

FÜr das Problem zwar nicht relevant jedoch hier die MainWindow.xaml.cs:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace HierarchicalDataTemplate
{
    /// <summary>
    /// Interaktionslogik für MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            
            Artikel art = new Artikel();
            art.Name = "Testartikel";

            Unterkategorie unt = new Unterkategorie();
            unt.Name = "TestUnterkategorie";
            unt.Artikelgruppe.Add(art);

            Hauptkategorie haupt = new Hauptkategorie();
            haupt.Name = "TestHauptkategorie";
            haupt.Unterkategorien.Add(unt);

            List<Hauptkategorie> Hauptkategorien = new List<Hauptkategorie>();
            Hauptkategorien.Add(haupt);

            tv.ItemsSource = Hauptkategorien;

        }
    }
}

Vorab schon mal Danke für eure Zeit & Hilfe
CyberHunter

07.09.2010 - 11:51 Uhr

Nein die Groß-/Kleinschreibung habe ich beachtet, das ist definitiv nicht der Grund.

Die Classe ist mit public modifiziert.


  public class Hauptkategorie
    {
        private List<Unterkategorie> _unterkategorie;

        public Hauptkategorie()
        {
            _unterkategorie = new List<Unterkategorie>();
        }

        public string Name { get; set; }
        public List<Unterkategorie> Unterkategorien
        {
            get { return _unterkategorie; }
            set { _unterkategorie = value; }
        }
    }

Danke für deine Hilfe
CyberHunter

07.09.2010 - 11:04 Uhr

danke für deine Antwort michlG.

Das hat mich nun schon mal weiter gebracht.
War neu für mich das ich einen Namespace verweis in XAML machen muss. Danke

Nun findet er mir den Namespace, habe aber aber ein neues Problem das mir nicht ganz klar ist.

Bei der Zeile im XAML:


  <HierarchicalDataTemplate DataType="{x:Type Local:Hauptkategorie}" ItemsSource="{Binding Unterkategorien}">

Bekomme ich die Meldung "Von dem Typverweis kann kein öffentlicher Typ mit dem Namen 'Hauptkategorie' gefunden werden.

Wenn ich aber im XAML "Local." eintippe so schlägt mir die Intellisense die Hauptkategorie vor. Also muss doch der Typ Hauptkategorie gefunden werden können.

Danke für deine Hilfe
CyberHunter

06.09.2010 - 16:34 Uhr

Ja, wenn du die x:Class im Window Tag vom XAML meinst:


<Window x:Class="Local.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Artikeluebersicht" Loaded="Window_Loaded" WindowState="Maximized" Icon="/Local;component/Images/logo.png" Closed="Window_Closed">

Im Codebehinde kann ich problemlos (auch mit dem Namespace) eine Instanz der Klasse Hauptkategorie erzeugen.


Local.Hauptkategorie = new Local.Hauptkategorie();

Danke für eure Hilfe
Cyberhunter

06.09.2010 - 14:27 Uhr

hm... und woran kann es liegen das er mir den Namespace nicht findet.
Der heisst definitiv so wie ich ihn angebe, (tippfehler ausgeschlossen)

Danke

06.09.2010 - 10:21 Uhr

Danke für eure Hilfe!
Wenn ich den XAML Code von CSL auf meine Anwendung anpasse tritt bei Folgender Zeile ein Fehler auf:


  <HierarchicalDataTemplate DataType="{x:Type Local:Hauptkategorie}" ItemsSource="{Binding Unterkategorien}">

Da sagt er mir das 'Local' kein Namespace ist der gefunden werden kann.
Auch wenn ich statt Local den Namespace meiner Anwendung verwende funktionierts nicht. (Ohne auch nicht)

Was stell diese Local dar? Doch den Namespace wo die Hauptkategorie zu finden ist, oder nicht?

Danke
CyberHunter

03.09.2010 - 17:15 Uhr

Hallo zusammen,

Ich habe in meinem WPF Project 3 Klassen:


 public class Hauptkategorie
    {
        private List<Unterkategorie> _unterkategorie;

        public Hauptkategorie() 
        {
            _unterkategorie = new List<Unterkategorie>();
        }

        public string Name { get; set; }
        public List<Unterkategorie> Unterkategorien 
        {
            get { return _unterkategorie; }
            set { _unterkategorie = value; }
        }
    }

    public class Unterkategorie
    {
        private List<Artikel> _artikel;

        public Unterkategorie() 
        {
            _artikel = new List<Artikel>();
        }

        public string Name { get; set; }
       
        public List<Artikel> Artikel 
        {
            get { return _artikel; }
            set { _artikel = value; }
        }
    }

    public class Artikel
    {
        public string Artikelnummer { get; set; }
        public string Name { get; set; }
    }

Nun möchte ich das ganze Hierarchisch im TreeView darstellen.
Ich schaffe es mit Hilfe des HierarchicalDataTemplates die Hauptkategorien und deren Unterkategorien anzuzeigen.
Ich bekomme es aber nicht gebacken das die Artikel von den Unterkategorien angezeigt werden.

Hier mein XAML der funktioniert, aber eben nur bis zu den Unterkategorien:


            <TreeView ItemsSource="{Binding Hauptkategorien}" Width="220" DockPanel.Dock="Left" Name="tvArtikel" Margin="5,5,5,10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" SelectedItemChanged="tvArtikel_SelectedItemChanged">

                <TreeView.ItemTemplate>

                    <HierarchicalDataTemplate ItemsSource="{Binding Unterkategorien}">

                        <TextBlock Text="{Binding Name}" />

                        <HierarchicalDataTemplate.ItemTemplate>

                            <DataTemplate>
                                <TextBlock Text="{Binding Name}" />
                            </DataTemplate>

                        </HierarchicalDataTemplate.ItemTemplate>

                    </HierarchicalDataTemplate>

                </TreeView.ItemTemplate>

            </TreeView>

Im Code setze ich dann die ItemsSource Property vom Treeview:


List<Hauptkategorie> source = _dat.getData();
tvArtikel.ItemsSource = source;

Kann mir jemand sagen wie ich meinen XAML Code ändern muss damit ein weiterer Node im Treeview mit den Artikeln an den Unterkategorien angezeigt wird.

Danke für eure Hilfe
CyberHunter

02.09.2010 - 11:45 Uhr

Ich glaub ich stand auf dem Schlauch.
Habe nun die Items per Databind ans Treeview gehängt und siehe da es funktioniert.

Danke für deinen Denkanstoß
CyberHunter

01.09.2010 - 17:30 Uhr

Das eine Problem ist zwar gelöst, habe aber nun ein anderes 😦

Wenn ich nun im Grid auf diese Spalte klicke damit sie nach dessen Inhalt sortiert wird,
so werden die Ziffern logischerweise als Text sortiert.
Also ich denke die Spalte einfach in Text zu Konvertieren ist nicht die 'saubere' lösung.

Danke für eure Hilfe
CyberHunter

01.09.2010 - 17:26 Uhr

Niemand eine Idee?

Danke

31.08.2010 - 14:41 Uhr

Danke für deine Antwort "ErfinderDesRades".
Dein Tip hat mich weiter gebracht.

Wenn ich die Integer Spalte in eine Char Spalte Convertiere bevor ich
die ItemSource des Datagrid setzte funktionierts problemlos.

Nochmals Danke
CyberHunter

30.08.2010 - 13:47 Uhr

Hallo zusammen,

Ich habe ein Datagrid auf meiner WPF Anwendung welches mittels Databinding an eine SQL Datenbank gekoppelt ist.
Die Spalten im Datagrid habe ich so festegelegt:


 <DataGridTextColumn Header="NameIntern"  Binding="{Binding Path=NameIntern, UpdateSourceTrigger=PropertyChanged}"/>

 <DataGridTextColumn Header="Sortierung"  Binding="{Binding Path=Sortierung, UpdateSourceTrigger=PropertyChanged}" />

Die Spalte Sortierung in der SQL Datenbank ist ein 'int' Feld und erlaubt keine Eingabe (Allow Nulls).

Wenn ich nun die WPF Anwendung starte wird das Datagrid korrekt befüllt.
Der User kann nun die Daten ändern und speichern.

Nun mein Problem: Wenn ich in der Spalte 'Sortierung' z.B.: den Wert 5 enfernen will
und keinen Wert eintragen will, so wird die Zelle sobald ich den Wert lösche im DataGrid Rot und das "RowEditEnding" Ereigniss wird erst geworfen wenn ich dort wieder irgendeinen Wert eintrage.
Das selbe klappt aber mit der Spalte "NameIntern", dort kann ich ohne Probleme den Wert löschen.
Die Spalten werden gleich erzeugt, angelegt und befüllt.
Der einzige Unterschied ist das es sich um ein 'int" Feld und nicht um ein 'nvarchar' Feld wie das NameIntern Feld handelt.

Kann mir jemand sagen wieso meine DataGrid nicht erlaubt den Wert aus der Spalte Sortierung zu entfernen?

Danke für eure Hilfe
CyberHunter

19.08.2010 - 14:19 Uhr

Ein break; wäre noch sinvoll 😉


 private void SelectTVItem(string Header, TreeViewItem rootItem)
        {
            foreach (TreeViewItem item in rootItem.Items)
            {
                if (item.Items.Count > 0)
                    SelectTVItem(Header, item);
                else
                {
                    if (Header == item.Header.ToString())
                    {
                        item.IsExpanded = true;
                        item.IsSelected = true;
                        item.Focus();
                        break;
                    }
                }
            }
        }

19.08.2010 - 14:18 Uhr

Danke für deine Antwort.
Ja genau das ist das Problem.
Ich verwende kein Databinding sondern befülle das Treeview zu Fuß über eine schleife.

Ich habe nun folgenden Ansatz versucht:


 private void SelectTVItem(string Header, TreeViewItem rootItem)
        {
            foreach (TreeViewItem item in rootItem.Items)
            {
                if (item.Items.Count > 0)
                    SelectTVItem(Header, item);
                else
                {
                    if (Header == item.Header.ToString())
                    {
                        item.IsExpanded = true;
                        item.IsSelected = true;
                        item.Focus();
                    }
                }
            }
        }

Der Funktion SelectTVItem übergebe ich den Header der gesucht werden soll + das 1. Item im TreeView.
Das Item wird nun auch gefunden, jedoch bringt es nichts wenn ich die Propertys IsExpanded + IsSelected auf True setze und auch dem Item den Focus gebe.
Das Treeview bleibt nach wie vor zugeklappt und kein Item ist angewählt.

Danke für eure Hilfe
CyberHunter

19.08.2010 - 11:38 Uhr

Hallo zusammen,

Ich arbeite an einer WPF Anwendung welche ein Treeview besitzt.
Dieses Treeview wird beim Start der Anwendung befüllt.
Wenn nun der Anwender diverse Daten übder die Anwendung abändert so muss ich das Treeview neu befüllen damit die änderungen auch im Treeview ersichtlich sind.
Soweit alles OK.
Nun möchte ich aber das im Treeview genau das Item Selektiert/Expandiert wird welches vor dem erneuten befüllen selektiert war.



var selItem = tvWerkstoff.SelectedItem as TreeViewItem;
            
FillTreeView();  //Treeview wird neu befüllt

//Wie kann ich hier nun das Item wieder Selektieren?

Danke für eure Hilfe
CyberHunter

30.11.2009 - 14:31 Uhr

Danke für deine Hilfe.
Werde nun diesen Hotfix bei Microsoft beantragen.

30.11.2009 - 13:45 Uhr

Sorry hier die ganze Fehlermeldung:

Name der fehlerhaften Anwendung: PresentationFontCache.exe, Version: 3.0.6920.4902, Zeitstempel: 0x4a174fc2
Name des fehlerhaften Moduls: unknown, Version: 0.0.0.0, Zeitstempel: 0x00000000
Ausnahmecode: 0xc0000005
Fehleroffset: 0x0001197d
ID des fehlerhaften Prozesses: 0x13a4
Startzeit der fehlerhaften Anwendung: 0x01ca71b78eab67d9
Pfad der fehlerhaften Anwendung: C:\Windows\Microsoft.NET\Framework\v3.0\WPF\PresentationFontCache.exe
Pfad des fehlerhaften Moduls: unknown
Berichtskennung: cc95d736-ddaa-11de-bf95-002258f648f2

30.11.2009 - 13:37 Uhr

Hallo zusammen,

Ich verwende Windows 7 Enterprise 32 bit und Visual Studio 2008 prof.
Bis dato habe ich mich noch nicht wirklich viel mit WPF auseinander gesetzt, aber es gibt immer ein 1. mal 😉

Ich habe folgendes Problem:
Wenn ich eine neue leere WPF Anwendung erstelle und lediglich eine TextBox im Grid-Tag einfüge (oder auch diese weg lasse) und das ganze per F5 starten/debuggen will schaltet mir Visual Studio kurz um (Toolbox, Projektmappenexplorer verschwindet) und stopt das ganze sofort wieder. Auch wenn ich über den Explorer die EXE direkt aufrufe passiert nichts.

Nun habe ich bemerkt das immer dann wenn ich mein WPF Projekt in Visual Studio öffne ein Ereigniseintrag von Windows in der Ereignisanzeige gemacht wird:

Application Error: PresentationFontCache.exe

Leider steht für mich nichts aussagekräftiges in der Fehlermeldung.

Habe nun zuerst mal das .NET Framework 3.5 de- und wieder installiert.
Danach habe ich mein Visual Studio komplett de- und wieder mit allen Funktionien installiert. <--- Immer noch das selbe problem

Hat jemand eine Idee wie ich das Problem lösen kann?
Bin für jeden Tip dankbar.

Danke & Schöne Grüsse aus Österreich

20.11.2008 - 13:56 Uhr

Hallo hinrich,

Schreib dir doch deine eigene Join() Methode.


public string join(string value, Int32[] array)
        {
            string str = string.Empty;

            foreach (Int32 x in array)
            {
                str += value + x.ToString();
            }
            return str;

        }

mfg
CyberHunter

19.11.2008 - 14:48 Uhr

Hallo zusammen,

Ich lasse mir mit Hilfe des Namespaces 'System.DirectoryServices' alle lokalen User auflisten.
Somit habe ich dann auch für jeden User ein DirectoryEntry Objekt.
Wie kann ich auslesen ob das User Konto Aktiviert oder Deaktiviert ist ?

Ich dachte das müsste irgendwie so funktionieren:


object obj = Entry.Properties["AccountDisabled"].Value;  //Entry = DirectoryEntry Objekt eines lokalen Benutzer Accounts

Jedoch wird die Proppertie 'AccountDisabled' nicht gefunden.
Weiss jemand wie ich das bewerkstelligen kann?

Danke für eure Hilfe
CyberHunter

04.11.2008 - 14:23 Uhr

Danke für den Tip.
Habe die margin-top des Form elementes gesetzt.
Nun funktionierts auch im Firefox.

03.11.2008 - 10:38 Uhr

danke für dein Antwort.

Habe mir den Firebug heruntergeladen und installiert.

Jedoch sehe ich dort keinen "Fehler", siehe Anhang.
Oder wo würdest du suchen??

Danke
Cyberhunter

03.11.2008 - 09:39 Uhr

Hallo zusammen,

ich Arbeteite mit VS2008 an einer Webanwendung.
Ich habe eine CSS Datei "Stylesheet1.css" mit folgendem Inhalt erstellt:


body
{
	font-family: Arial, Verdana, Helvetica;
	font-size: 12px;
	font-weight: normal;
	font-style: normal;
	font-variant: normal;
	text-transform: none;
	text-align: left;
	color: Black;
	margin-top: 0px;
	margin-left: 0px;
}

Weiters habe ich eine Masterpage "masterpage.Master" erstellt.
In dieser Masterpage habe ich im Head Tag einen verweis zu der CSS Datei wie folgt eingetraten:


 <link href="Stylesheet1.css" rel="stylesheet" type="text/css" />

Nun habe ich eine ASPX Seite "Default.aspx" welche auf der Masterpage aufbaut erstellt.

Mein Problem ist nun das das "margin-top" welches ich mit "0px" in der Stylsheet Datei definiert habe im Internet Explorer korrekt mit "0px" dargestellt wird im Mozilla Firefox oder auch im Google Chrome totzdem ein "margin-top" von ich schätze ca. 10px dargestellt wird.

Kann mir jemand sagen wie ich es erreiche das auch andere Browser das richtig darstellen?

Danke für eure Hilfe
CyberHunter

14.10.2008 - 15:27 Uhr

Hallo zusammen,

ich habe eine Windows Anwendung mit VS2005 entwickelt.
Zur Anwendung habe ich einen "Crystal Reports Bericht" hinzugefügt.
Die Eigenschaft "Buildvorgang" des Berichtes ist auf "Eingebettete Ressource" eingestellt.

In der Anwendung befindet sich ein Button "Print" mit folgendem Code:



        private void btnPrint_Click(object sender, EventArgs e)
        {
            DataTable dt = (DataTable)(dataGridView1.DataSource);

            Print prt = new Print(); //Winform mit CrystalReportViewer Steuerelement
            ReportWarenkorb rpt = new ReportWarenkorb();
            prt.crystalReportViewer1.ParameterFieldInfo = new ParameterFields();
            prt.crystalReportViewer1.DisplayGroupTree = false;

            string Bemerkungen = "-";

            if (txtBemerkungen.Text.Trim() != "")
                Bemerkungen = txtBemerkungen.Text.Trim();

            AddPara("Bestellnummer", txtBestellnummer.Text.Trim(), prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Wunschtermin", dateTimePicker1.Value.ToShortDateString(), prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Ansprechpartner", txtAnsprechpartner.Text.Trim(), prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Bemerkungen", Bemerkungen, prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Kundennummer", "Kunde: " + _Kundennummer, prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Gesamtpreis_Einzeln", lblGesamtPreisEinzeln.Text, prt.crystalReportViewer1.ParameterFieldInfo);
            AddPara("Gesamtpreis_Gesamt", lblGesamtpreisGesamt.Text, prt.crystalReportViewer1.ParameterFieldInfo);
          
            rpt.SetDataSource(dt);

            prt.crystalReportViewer1.ReportSource = rpt;

           prt.ShowDialog();
                 
        }

        private void AddPara(string paramName, string paramValue, ParameterFields paramFields)
        {
            ParameterField paramField = new ParameterField();
            ParameterDiscreteValue paramDiscreteValue = new ParameterDiscreteValue();
            ParameterValues paramValues = new ParameterValues();
            paramField.ParameterFieldName = paramName;
            paramDiscreteValue.Value = paramValue;
            paramValues.Add(paramDiscreteValue);
            paramField.CurrentValues = paramValues;
            try { paramFields.Add(paramField); }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }


Auf meinem Entwicklungsrechner und auf all meinen Testrechnern (sogar Win95 & Win98 ) funktioniert die Anwendung problemlos sprich der Bericht öffnet sich im CrystalReportViewer und kann gedruckt werden. Auch ca. 10 Kunden arbeiten mit der Software ohne probleme bis auf einen.
Ein Kunde hat die Software auf einem Terminalserver (Windows Server 2003) installiert die Anwendung funktioniert soweit bis er auf den Button "Print" klickt dann erscheint folgende Fehlermeldung:

System.Exception: Der Bericht konnte nicht geladen werden --->
System.Runtime.InteropServices.COMException (ßx80004005): Das System kann den angegeben Pfad nicht finden.

Der Kunde hat die Software als Administrator installiert und auch ausgeführt, also sollte es nicht an irgendwelchen Rechten scheitern.
Weiters hat der Kunde auch die Crystal Reports Runtime installiert, welche sowieso das Setup meiner Anwendung mit installiert. Wir haben trotzdem die Runtime nochmal installiert aber leider ohne erfolg.
Auch im Eventlog ist nicht mehr zu sehen als diese Fehlermeldung.

Was könnte das für ein gesuchter Pfad sein? Bin schon seit 2 Tagen auf der Suche und finde keine Lösung. Ich kann den Fehler nicht mal bei mir Reproduzieren, wie gesagt auf all meinen Testrechnern funktionierts, auch auf unserem Terminalserver den ich für die Tests zweckendfremdet habe funktionierts ohne Probleme.

Bin für jeden Tip/Hilfe dankbar.

Danke für eure Hilfe
CyberHunter

12.08.2008 - 17:03 Uhr

Danke für deine Antwort.
Ich konnte es über IPC lösen.

12.08.2008 - 10:32 Uhr

Hallo zusammen,

ich habe eine Windows Diest der Daten auf einen DMZ-Server schieben soll.
Mein Problem ist das egal über welches Konto ich den Windows Dienst aufrufen ich keinen zugriff auf den UNC Pfad vom DMZ-Server habe. Ich muss also irgendwie Kennwort und Passwort mitgeben da der DMZ natürlich nicht in der gleichen Domäne ist wie der Server von dem aus der Dienst läuft.

Ich habe auch versucht dies über ein gemapptes Netzlaufwerk zu machen. Ohne erfolg. Obwohl ich im Explorer das Laufwerk sehe und auch zugriff habe kann der Dienst nicht drauf zugreiffen. Ich habe den Dienst mit dem selben Konto wie gerade angemeldet ausgeführt, auch ohne erfolg.

Ich habe auch programmtechnisch versucht das laufwerk vorher zu mappen (per Process.Start("..")) um die Daten zu verschieben. Der Code für das mappen wird ohne fehler ausgeführt jedoch sehe ich dann weder ein Laufwerk im Explorer noch können die Daten verschoben werden.

Der Code für das Mappen muss funktionieren da ich diesen auch schon in einer Windows Anwendung verwendet habe.

Ich habe irgendwo im Netz eine Klasse (Impersonator) gefunden die angeblich dafür da sein soll um auf UNC-Pfade mit anderem Login zuzugreiffen, hat aber auch nicht geklappt. Der Code wird ohne meckern ausgeführt nur die Files können nicht verschoben werden.

Hat jemand eine Idee wie ich das Problem lösen kann um die Daten erfolgreich zu verschieben?

Danke für eure Hilfe
Cyberhunter

04.08.2008 - 13:52 Uhr

Hallo sweet,

danke für deine Antwort aber das habe ich damit nicht gemeint.

Meine Anwendung muss von mehreren Clients lokale Dateien auf einen Server verschieben.
An den Clients sind die veschiedensten Users angemeldet.
Die Dateien müssen auf einen DMZ Server verschoben werden. Dieser DMZ Server
ist natürlich nicht in der Domäne wo sich die Clients befinden und kennt somit die User nicht.

Ich würde also gerne einen User programmatisch (der auf dem DMZ Server existiert) angeben, damit die Dateien verschoben werden können, egal welcher User gerade angemeldet ist.

Danke
CyberHunter

04.08.2008 - 11:22 Uhr

Hallo Ghosti,

OpenNetCF bietet freie Bibliotheken für das Compact Framework an.
Da ist auch eine Dabei mit der sich ein Ping absetzen lässt.

Mit ein wenig durchstöbern der Seite http://www.opennetcf.com wirst du sicher schnell fündig.

Schöne Grüsse
CyberHunter

04.08.2008 - 11:09 Uhr

Hallo zusammen,

ich möchte mit Hilfe von "System.IO.File.Move()" Dateien von der lokalen Platte auf einen UNC Pfad verschieben.
Auf diesen UNC Pfad hat aber nur ein bestimmter User zugriff.
Wie kann ich die Methode Move() mit einem User und Passwort versehen damit die Dateien unter einem anderen User auf das Netzwerk verschoben werden?

Danke für eure Hilfe
CyberHunter

15.07.2008 - 16:04 Uhr

Im Zweifel musst du auf die Bibliothek eines Drittanbieters ausweichen.

Kannst du mir sagen wo ich eine Bibliothek eines Drittanbieters finde? Am besten um sonst 😉
Habe über Google nur die "VintaSoft Image Library" gefunden, bei verwendung dieser Bibliothek bekomme ich aber auch die Exception von wegen zu wenig Arbeitsspeicher.

Danke für eure Hilfe
CyberHunter

14.07.2008 - 16:54 Uhr

... tif Dateien

14.07.2008 - 15:00 Uhr

Danke für eure Antworten,

wie es aussieht ist wirklich das Format schuld.
Bei manchen tif Dateien (immer bei den selben Dateien) wird die Exception geworfen.
Hat jemand eine Idee wie ich das Problem lösen kann?
Jede x-Belige 0815 Anwendung kann die Datei öffnen, sogar MS Paint bekommt die Datei ohne mekern auf.

Danke für eure Hilfe
CyberHunter

10.07.2008 - 11:43 Uhr

Hallo NG,

Ich habe eine Win Form Anwendung mit einer Combobox und einer Picturebox.
In der Combobox liste ich Bild Datein aus einem Ordner auf.
Wird nun eine Datei in der Combobox ausgewählt wird diese in der Picturebox angezeigt.
Soweit so gut.
Mein Problem ist das wenn ich einige Dateien durchklicke bekomme ich die Exception"Out Of Memory".

Hier mein Code für das Combobox_SelectedIndexChanged Event:



void cmb_SelectedIndexChanged(object sender, EventArgs e)
{
         if (pictureBox1.Image != null)
            {
                pictureBox1.Image.Dispose();
                GC.Collect();
            }

 if (File.Exists(cmb.Text))
                            pictureBox1.Image = Image.FromFile(cmb.Text);
            else
pictureBox1.Image = null;
}


Mein Rechner hat 2,5 GB Ram zu verfügung und die Images sind zw. 100 KB und 1 MB groß.
Die Meldung bekomme ich aber schon beim 6-7 Bild.

Danke für eure Hilfe
CyberHunter

12.06.2008 - 09:36 Uhr

Danke für eure Antworten.
Habs nun hinbekommen in dem ich die "dll" im bin Verzeichniss ersetzt habe, danach wurden alle änderung richtig angezeigt.

11.06.2008 - 16:31 Uhr

Hallo zusammen,

ich würde gerne aus einem String C# Code erzeugen.
Das soll in etwa so funktionieren:



string str = "System.Environment.UserName.ToUpper();";
try
{
string ergebnis = InCSharpCodeUmwandeln(str);
}
catch { }


Die funktion "InCSharpCodeUmwandeln gibt es natürlich nicht weil das genau meine frage ist.
Ist es möglich das versucht wird ob der String ein gültiger C# - Code ist, und wenn ja dasl dieser ausgeführt wird. In unserem Fall soll dann einfach der Username ermittelt werden.

Danke für eure Hilfe
CyberHunter

11.06.2008 - 14:09 Uhr

Danke für deine Antwort.
Kannst du mir das etwas genauer beschreiben.

Ich dachte eine APS.NET Webanwendung kann man mit Copy/Paste veröffentlichen? Hat ja bisher auch immer so geklappt.

Danke für deine Hilfe
CyberHunter

11.06.2008 - 12:58 Uhr

Hallo zusammen,

seit kurzer Zeit habe ich Probleme mit dem IIS 6 auf einem Windows Server 2003.
Wenn ich z.B. kleine Änderungen an der Datei "Default.aspx.cs" mache, und diese am IIS austausche, wird dies einfach ignoriert bzw. ein alter Stand der Datei hergenommen. Sogar wenn ich eine ".aspx.cs" Datei umbenenne funktioniert die Seite immer noch mit altem Stand ohne eine Fehlermeldung.
Wenn ich an der Datei "Default.aspx" etwas abändere erscheint die richtige Änderung sofort im Browser auf.
Bei mir lokal funktionieren diese Änderungen an der Code behind Datei nur eben der Webserver nimmt einen alten stand her.

Natürlich habe ich schon alles mögliche versucht, neustart des IIS, iisreset, Internet Cache geleert, ja sogar den Server habe ich neu gebootet, alles ohne erfolg.

Hat jemand eine Idee wieso mein IIS diese änderungen nicht übernimmt??
Bin für jeden Tip Dankbar.

Danke & Schöne Grüsse aus Österreich
CyberHunter

06.05.2008 - 16:16 Uhr

Danke herbivore,

so funktionierts wie ich das will.

06.05.2008 - 15:58 Uhr

Danke für eure Antworten,

aber das ist genau das Problem das dies nicht mit Math.Round funktioniert bzw. ich das nicht hinbekomme.
Ich will immer aufrunden, Math.Round rundet meines wissens kaufmännisch
das heisst bei 1,142 wird abgerundet auf 1,14 und bei 1,146 wird aufgerundet auf 1,15 ich will aber das auch 1,142 auf 1,15 aufgerundet wird und mit Math.Round bekomme ich das irgendwie nicht gebacken.
Auch sowas wie 1,14234568 soll auf 1,15 gerundet werden.

Danke
CyberHunter

06.05.2008 - 14:59 Uhr

Hallo zusammen,

wie schaffe ich es das ein double Wert immer auf 2 kommas aufgerundet wird.

also z.B:
1.154 = 1.16
2.237 = 2.24
0.521 = 0.53
usw.

Danke für euer Hilfe.
CyberHunter

17.03.2008 - 17:13 Uhr

Hallo NG,

ich arbeite zur Zeit an einer Win Forms Anwendung die diverse Methoden von einem WebService verwendet.

Das gunze funktioniert wunderbar, aber leider nur ohne Proxyserver.
Wenn ich das ganze (zu Test zwecken) über einen Proxyserver versuche kann ich die 1. Methode (eine x-beliebige) ohne probleme ansprechen und bekomme auch ein Ergebniss zurück. Rufe ich die gleiche oder auch eine andere Methode direkt danach auf bekomme ich die Fehlermeldung das die Verbindung vom Remote Host aus unbekannten Gründen geschlossen wurde.

Hier der Code:


    public partial class Form1 : Form
    {

        private string WebServiceUser = "webserviceuser";
        private string WebServicePass = "webservicepasswort";
        private string ProxyAdresse = "192.177.100.155";
        private Int32 ProxyPort = 8080;
        private string ProxyUser = "proxyuser";
        private string ProxyPass = "proxypasswort";
        private string ProxyDomain = "domäne";

        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            WebService.Service _WebService = new zum_testen.WebService.Service();

            System.Net.NetworkCredential cr = new System.Net.NetworkCredential(WebServiceUser, WebServicePass);
            _WebService.Credentials = cr;


            //Hier wird der Proxy zugewiesen

            System.Net.WebProxy proxy = new System.Net.WebProxy(ProxyAdresse, ProxyPort);
            System.Net.NetworkCredential crProxy = new System.Net.NetworkCredential(ProxyUser, ProxyPass, ProxyDomain);
            proxy.Credentials = crProxy;
            proxy.BypassProxyOnLocal = true;
            _WebService.Proxy = proxy;

            //

            try
            {
                MessageBox.Show("Datenbankgrösse: " + _WebService.getDBSize("203901").ToString()); //Die 1. Methode funktioniert immer (egal ob getDBSize() oder IsKunde()) auch mit Proxy
                MessageBox.Show("Ist Kunde: " + _WebService.IsKunde(203901).ToString());           // Bei der 2. bekomme ich dann die Fehlermeldung das der RemoteHost die Verbindung aus unbekannten gründen geschlossen hat
                MessageBox.Show("Update notwendig: " + _WebService.NeedUpdate(203901, 0).ToString());
            }
            catch (Exception ex)
            {
                MessageBox.Show("Fehler: " + ex.ToString());

            }
        }
    }

Hat jemand eine Idee wieso ich die Fehlermeldung beim 2. Aufruf derselben und auch einer anderen Methode bekomme.

Im Anhang seht ihr die genaue Fehlermeldung.

Danke für eure Hilfe
CyberHunter

14.03.2008 - 11:47 Uhr

Danke für deine Hilfe, werde mir die links ansehen.