Laden...
C
Benutzerbeschreibung
C#

Forenbeiträge von CyberHunter Ingesamt 131 Beiträge

02.06.2014 - 16:51 Uhr

Hallo MrSparkle,

Danke für deine Hilfe.
Konnte das Problem nun beheben indem ich ein neues Projekt angelegt habe.
Habe aus meiner Sicht alles 1:1 in das neue Projekt übernommen und siehe da die Bilder werden angezeigt.
Da muss wohl etwas an meinem Projekt "beschädigt" bzw. "verwürgt" gewesen sein.

Danke
CyberHunter

02.06.2014 - 11:00 Uhr

Hallo zusammen,

Ich verwende VS 2013 Pro. und erstelle zur Zeit ein Outlook 2010 AddIn mit .NET 4.0
Beim klick auf einen Button öffne ich ein WinForms Fenster mit einem ElementHost-Container welches dann das WPF Control enthält.

Das WPF Control holt ein paar Daten aus einer SQL Datenbank etc.
Mein Problem ist nun das mir keine Bilder in dem WPF Control angezeigt werden (im Designer problemlos).


   <Image Source="MyOutlookAddin;component/Images/stop.png" />

Auch diese Schreibweise funktioniert nur im Designer:


   <Image Source="Images/stop.png" />

Habe schon veruscht die Bilder als "resource" als "Inhalt" in das "ausgabeverzeichniss zu kopieren" etc.
Ich bekomme keine Fehlermeldung oder ähnliches einzig dort wo das Bild sein sollte ist es einfach leer.
Habe auch verschieden Bildformate wie JPG, ICO und PNG versucht.

Danke für eure Hilfe
CyberHunter

29.11.2013 - 09:14 Uhr

Danke für eure Hilfe.

Ich werde nun mal versuchen beim start der anwendung auf das Update zu prüffen und ggf. nachinstallieren.

28.11.2013 - 16:09 Uhr

Hallo zusammen,

ich habe ein WPF Anwendung für die ich ein Setup mit InstallShield 2013 LE erstellt habe.
Die WPF Anwendung baut auf .NET 4.0 (full) auf welches vom Setup überprüft und ggf. installiert wird.
(ClickOnce kann ich nicht verwenden).

Nun ist mein Problem das auf dem Client zwingend das .NET Framework Update KB2468871 installiert sein muss damit die Anwendung korrekt arbeitet.

Hat jemand eine Idee/Lösungsansatz wie ich auf das Update prüfen kann und ggf. installieren?

Danke für eure Hilfe
CyberHunter

31.10.2012 - 14:06 Uhr

<Style TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
        <MultiTrigger>
            <MultiTrigger.Conditions>
                <Condition Property="IsFocused" Value="False"/>
                <Condition Property="IsSelected" Value="True"/>
            </MultiTrigger.Conditions>
            <Setter Property="Background" Value="DarkGray"/>
        </MultiTrigger>
    </Style.Triggers>
</Style>

30.10.2012 - 10:10 Uhr

Hallo zusammen,

Wie das Thema schon erahnen lässt, habe ich eine WPF Anwendung mit einem Datagrid.
Im Datagrid werden einige Datensätze angezeigt, wenn einer selektiert wird werden Textboxen etc. zum bearbeiten befüllt.

Wenn ein Datensatz selektiert ist und das Datagrid dann den Focus verliert ist nicht mehr ersichtlich welche Zeile selektiert ist.
Hat jemand eine Idee wie ich das Problem lösen könnte.

Danke für eure Hilfe
CyberHunter

24.09.2012 - 09:23 Uhr

Hallo zusammen,

Da meine WPF Anwendung auch auf älteren Rechnern mit z.B. Windows XP ausgeführt wird
habe ich in die App.xaml enen verweis auf das Dictionary "Aero" hinzugefügt damit die Anwendung auch auf alten Systemen WPF like aussieht.

Nun habe ich das Problem das aber die Styles die ich für mein Custom Control in der App.xaml definiert habe nicht mehr greifen.

So sieht meine App.xaml in aus:


...

 <Application.Resources>

        <ResourceDictionary>

            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/>
            </ResourceDictionary.MergedDictionaries>

            <Style TargetType="local:MeinDataGrid">
                <Setter Property="AlternatingRowBackground">
                    <Setter.Value>
                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,3">
                            <GradientStop Color="#ccffee" Offset="0.0" />
                            <GradientStop Color="#31c4cf" Offset="0.25" />
                        </LinearGradientBrush>
                    </Setter.Value>

                </Setter>
                <Setter Property="RowBackground">
                    <Setter.Value>
                        <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,3">
                            <GradientStop Color="#ffcdbd" Offset="0.0" />
                            <GradientStop Color="#e3eccf" Offset="0.25" />
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>

             ...

        </ResourceDictionary>
    </Application.Resources>


Weiss jemand was ich anders machen muss bzw. warum der Style für mein Custom Datagrid nicht greifft?

Danke für eure Hilfe
CyberHunter

21.06.2012 - 14:47 Uhr

Hallo gfoidl,

Danke für deine Antwort.

Ja ich habe einfluss auf den Webserivce, aber wie würdest du diesen anpassen?

Die XML Daten sind eingentlich ganz einfach aufgebaut und basieren auf einer System.Data.DataTable:


<DocumentElement>
     <DS>
           <Vorname>Max</Vorname>
           <Nachname>Mustermann</Nachname>
           .............
     </DS>
      <DS>
           <Vorname>Susi</Vorname>
           <Nachname>Sorglos</Nachname>
           .............
      </DS>
        .............
</DocumentElement>

Und das ganze kann dann eben auch mit komplett anderen "Spalten" daher kommen:


<DocumentElement>
     <DS>
           <Marke>Audi</Marke>
           <Gewicht>1,8 t</Gewicht>
           .............
     </DS>
      <DS>
           <Marke>BMW</Marke>
           <Gewicht>1,6 t</Gewicht>
           .............
      </DS>
        .............
</DocumentElement>

Den gedanken an Anonyme Typen hatte ich auch schon, aber dann müsste ich ja wissen wieviele Properties ich brauche und wie diese Namentlich heissen sollen.

Danke für deine Hilfe
CyberHunter

21.06.2012 - 14:24 Uhr

Hallo zusammen,

In meiner Silverlight 4 Anwendung bekomme ich Daten von einem Webservice welcher sich die Daten aus SQL zieht.
Diese Daten bekomme ich als XML-String vom Webservice zurück.

Nun muss ich diese Daten in einem Datagrid anzeigen, mein Problem ist jedoch ich weiss nicht wie die XML - Daten aufgebaut sind, diese können stark variieren, das kann grob gesagt heute eine Tablle von Autos sein, morgen eine von Personen, daher kann ich mir nicht eigene Objekte bauen und das XML dann in eine List<T> parsen.

Hat jemand eine Idee bzw. einen Tipp wie ich die XML Daten in mein Datagrid bekomme?

Danke für eure Hilfe
CyberHunter

16.03.2012 - 10:28 Uhr

Konnte das Problem nun mit dem Scriptmanager auf der ASPX Seite lösen.
Per Javascript kann ich nun über PageMethods die Methode Synchron auf der ASPX Seite aufrufen.

Danke

13.03.2012 - 09:25 Uhr

Danke für deine Antwort Talla,

Wie kann ich denn den Webservicecall Synchron aufrufen?
Habe versucht diesen in einem eigenen Thread aufzurufen und dann zu Warten bis der Thread beendet ist, jedoch klappt das auch nicht recht.

Hast du mir einen Ansatz??

Danke

12.03.2012 - 18:20 Uhr

Hallo zusammen,

Meine SL Anwendung konsumiert einen Webservice welcher Daten aus einer SQL Datenbank liest/schreibt.

Nun möchte ich gerne das wenn die SL Applikation geschlossen wird einen eintrag in meiner DB machen. (User inaktiv).

Dazu Registriere ich im Application_Startup event mein "ScriptableObject":


 private void Application_Startup(object sender, StartupEventArgs e)
        {
            HtmlPage.RegisterScriptableObject("myApp", this);
            this.RootVisual = new MainPage();
        }

In der App Klasse habe ich dann folgende Methode definiert:


 [ScriptableMember]
        public void LogOffCurrentUser()
        {
             new WebService.WebServiceSoapClient().LogOffUserAsync(_id);
        }

Auf der aspx Seite habe ich folgendes Javascript im Body Tag um die Methode aufzurufen:


  window.onbeforeunload = logOffUser;
        function logOffUser() {
            var slApp = document.getElementById("slApp")
           slApp.Content.myApp.LogOffCurrentUser();
        }

Mein Problem ist nun das die Asynchrone Methode nur im Firefox funktioniert.
Die Methode wird zwar auch in allen anderen Browsern (getestet mit IE + Chrome) aufgerufen, jeodch sieht es so aus als ob die Methode, da asynchron, gekillt wird.

Hat jemand eine Idee wieso das nur im Firefox funktioniert?
Bzw. hat jemand einen Lösungsansatz wie ich das Problem anders lösen kann??

Danke für eure Hilfe
CyberHunter

02.11.2011 - 13:39 Uhr

Hallo zusammen,

ich habe ein WPF Datagrid für welches ich ein ContentTemplate in der App.xaml
definiert habe, dieses sieht vereinfacht so aus:


 <Style TargetType="DataGridColumnHeader">
            <Setter Property="ContentTemplate">
                <Setter.Value>
                    <DataTemplate>
                        <StackPanel HorizontalAlignment="Stretch" Orientation="Vertical">
                            <TextBox x:Name="txtHeader" />
                            <TextBlock Text="{Binding}" />
                        </StackPanel>
                    </DataTemplate>
                </Setter.Value>
            </Setter>
        </Style>

Nun möchte ich auf das TextChange Event dieser TextBox reagieren.
Kann mir jemand einen Tip geben wie ich auf diese TextBox im CodeBehind zugreiffen kann?
Wenn ich von einer Column im Datagrid das HeaderTemplate aufrufe ist dieses immer null.

Danke für eure Hilfe
CyberHunter

31.10.2011 - 16:53 Uhr

Danke für deine Antwort, dann werde ich mir wohl was einfallen lassen müssen.

31.10.2011 - 16:28 Uhr

Hallo zusammen,

Ich möchte in meiner WPF Anwendung auf mehreren Pages ein Generisches Control verwenden:



namespace meineAnwendung.Controls
{
public class meinDataGrid<T> : Datagrid
{
//...
}
}


Wie kann ich dieses Control nun in XAML verwenden?
Habe folgenden Ansatz versucht:


<Page x:Class="meineAnwendung.Page1"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:local="meineAnwendung.Controls"
      xmlns:objects="meineAnwendung.Objects"
Titel="Meine Anwendung">

<local:meinDataGrid x:Name="dg" x:TypeArguments="objects:MeinObject" AutoGenerateColumns="True" />

</Page>

Im Namespace meineAnwendung.Controls sitzt das Objekt "MeinObject".

Wenn ich das ganze Compilieren will bekomme ich die Fehlermeldung:> Fehlermeldung:

Nur ein Stammtag kann Attribut "x:TypeArguments" angeben.

Das Stammtag wäre ja wohl das <Page> Tag, jedoch kann ich dort den Typ ebenfalls nicht angeben.

Danke für eure Hilfe
CyberHunter

29.10.2011 - 20:13 Uhr

public List<object> getData()
{
var result = (from a in _context.artikel
        join agr in _context.artikelgruppe on a.artikelgruppe equals agr.ARTIKELGRUPPE
                       select new { Artikel = a.ARTIKEL, Name = a.NAME, NameAGR = agr.NAME, AGR = agr.artikelgruppe  }).ToList<object>;

return result;
}

so klappt es, danke.

29.10.2011 - 20:09 Uhr

Danke für deine Antowrt.

Ich kann das ganze als object zurückgeben, das funktioniert.
Aber wie Caste ich das in eine List<object> ??

29.10.2011 - 19:58 Uhr

eine externe Anwendung öffnest du mit


System.Diagnostics.Process.Start(@"c:\windows\notepad.exe");

Gruß
CyberHunter

29.10.2011 - 19:48 Uhr

verwendetes Datenbanksystem: <MSSQL2008>

Hallo zusammen,

ist es möglich eine Methode zu schreiben die eine List<AnonymousType> zurückgibt?

In etwa sowas:



public List<???> getData()
{
var result = from a in _context.artikel
        join agr in _context.artikelgruppe on a.artikelgruppe equals agr.ARTIKELGRUPPE
                       select new { Artikel = a.ARTIKEL, Name = a.NAME, NameAGR = agr.NAME, AGR = agr.artikelgruppe  };

return result.ToList();
}


Danke für eure Hilfe
CyberHunter

28.10.2011 - 21:45 Uhr

Danke für eure Hilfe.
Habs nun hinbekommen.

Habe auf den Tip von Abt den Zugriff über Repositories gelöst, nun klappts.

Danke

28.10.2011 - 21:00 Uhr

Mit nur SaveChanges() wird die neue Zeile nicht in die DB geschrieben.
Eine Bindung zum Kontext gibt es keine.

Das DataGrid befülle ich so:



context = new EntityDataModel.BenutzerEntities();
datagrid.ItemsSource = context.Benutzer;


28.10.2011 - 20:34 Uhr

Danke für deine Antwort.
Wenn ich es so mache bekomme ich die Meldung:

Fehlermeldung:
Ein Objekt mit demselben Schlüssel ist bereits im ObjectStateManager vorhanden.

28.10.2011 - 20:17 Uhr

verwendetes Datenbanksystem: <MSSQL2008>

Hallo zusammen,

Ich habe eine WPF Anwendung mit einem Datagrid dessen Property "CanUserAddRows" auf True gesetzt ist.

Nun möchte ich im RowEditEnding Event des Datagrids die änderunge in die DB zurück speichern.
Das Problem ist bei den neu hinzugefügten Zeilen zum Datagrid.
Die neuen Zeilen haben den EntityState Detached.
Ich habe versucht diese mittels .Attach() hinzuzufügen jedoch ohne erfolg.
Auch den EntityState in Added zu ändern funktioniert nicht.

Kann mir jemand einen Tip geben wie ich diese neuen Zeile erfolgreich zum context hinzufügen kann?

Danke
CyberHunter


private void datagrid_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{

var user = e.Row.Item as EntityDataModel.Benutzer;

                if (user.EntityState == System.Data.EntityState.Detached)              
                    context.Attach(user);
              
                context.SaveChanges();

}


26.10.2011 - 11:00 Uhr

Hallo zusammen,

Ich habe eine WPF Anwendung mit einem Datagrid Control.
Das Datagrid besitzt ein Contextmenü welches anhand der aktuellen Zelle div. operationen ausführt.

Mein Problem ist nun das bei einem rechtsklick auf eine Zelle diese nur dann selektiert wird wenn die Zelle in einer anderen Row ist.
Wenn ich also eine Zelle in der bereits selektierten Row mit rechts klicke wird die Zelle nicht selektiert.

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

Danke für eure Hilfe
CyberHunter

29.09.2011 - 10:17 Uhr

Hallo zusammen,

ich habe das Problem das mein Silverlight Datagrid das Event RowEditEnded bei änderung des Inhaltes einer Textbox nicht abfeuert.

Hier die Spalte die das Event nicht abfeuert wenn ich was ändere:


<sdk:DataGridTemplateColumn Header="Beschreibung" Width="220">
                                <sdk:DataGridTemplateColumn.CellEditingTemplate>
                                    <DataTemplate>
                                        <TextBox  TextWrapping="Wrap" Text="{Binding Path=Beschreibung, Mode=TwoWay}" />
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellEditingTemplate>
                            </sdk:DataGridTemplateColumn>

das selbe DataGrid besitzt auch noch folgende Spalte mit welcher das Event problemlos abgefeuert wird:


<sdk:DataGridTextColumn Binding="{Binding Path=Titel}" Header="Titel" Width="155" />

Weiss jemand woran das Problem liegt?

Danke für eure Hilfe
CyberHunter

17.09.2011 - 11:28 Uhr

Hallo zusammen,

Ich erstelle zur Zeit einen Report mit Crystal Reports for Visual Studio 2010.
Darin würde ich gerne eine Schriftart verwenden (ttf) welche nicht auf allen Clients installiert ist.
Kann ich in Crystal Reports die Schriftart irgendwie einbetten damit die Clients den Bericht korrekt mit der richtigen Schriftart angezeigt bekommen ohne diese installieren zu müssen?

Danke für eure Hilfe
CyberHunter

11.07.2011 - 18:19 Uhr

Danke für den TIP, so hats funktioniert.

Der einzige Nachteil ist das man nach dem Registrieren/Kopieren den Rechner neu starten muss damit die Schrift z.B. in Word verwendbar ist, aber damit kann ich leben.

Danke
CyberHunter

11.07.2011 - 13:20 Uhr

Hallo zusammen,

ich versuche eine Schriftart über meine Anwendung zu installieren.
Mit folgende API aufruf funktioniert das auch, aber nur solange ich meinen rechner nicht neu starte:


 [DllImport("gdi32.dll")]
        public static extern int AddFontResource(string lpszFilename);

Habe auch versucht die Schriftarten einfach nach "%windir%\fonts&quot; zu kopieren.
Dann liegen die Dateien zwar dort, aber windows erkennt sie nicht als Schriftart.

Hate jemand eine Idee wie man das anders lösen kann oder weiss jemand wieso die Schriftart nach dem API aufruf nach einem Rechner neustart wieder verschwindet??

Dank für eure Hilfe
CyberHunter

20.05.2011 - 15:25 Uhr

Hallo zusammen,

ich habe ein Datagrid auf meiner WPF Anwendung.
Dieses Datagrid besitzt eine DataGridComboBoxColumn.


 <DataGridComboBoxColumn Width="*" Header="Art" SelectedItemBinding="{Binding Path=Art}" SelectedValuePath="{Binding Path=Art}"  />

Der DataGridComboBoxColumn.ItemsSource Property weise ich eine DataTable zu:


(dgWerkstoffe.Columns[0] as DataGridComboBoxColumn).ItemsSource = arten;

Soweit so gut, die Tabelle wir korrekt angezeigt und auch die Items der Combobox der jeweiligen Zeile sind korrekt selektiert.

Nun möchte ich im Datagrid RowEditEnding - Event den Wert der Combobox haben.
Ich komme aber nicht an den Wert heran, kann mir jemand einen Tip geben wie ich die SelectedValue auslesen kann.


 private void datagrid1_RowEditEnding(object sender, DataGridRowEditEndingEventArgs e)
{
//dachte in etwa so:
(this.datagrid1.Columns[0].GetCellContent(e.Row) as ComboBox).SelectedValue.ToString()
//Jedoch: (this.datagrid1.Columns[0].GetCellContent(e.Row) as ComboBox) == NULL
}

Danke für eure Hilfe
CyberHunter

19.05.2011 - 11:36 Uhr

Hallo zusammen,

ich habe auf meiner WinForms Anwendung ein Datagrid (kein Datagridview) mit einem eigenem Contextmenü.
Die ReadOnly Property ist auf True gesetzt.
Das Grid ist an eine Datatable gebunden.

Wird nun eine Zelle mit links klick selektiert so wird der Zelleninhalt markiert (obwohl dieser nicht veränderbar ist) und beim rechtsklick erscheint dann das Standard Contextmenü (Copy, Paste, etc.) und nicht mein eigenes Contextmenü.

Wenn ich die Zelle direkt mit rechts selektiere erscheint mein Contextmenü, da ja der Zelleninhalt nicht markiert wird, so wie es sein soll.

Wie schaffe ich es nun das beim selektieren einer Zelle mit der linken Maustaste der Cursor nicht in die Zelle springt und den Inhalt markiert.
Oder wenn schon markiert dann aber trotzdem mein Contextmenü bei einem erneuten klick mit rechts erscheint?

Danke für eure Hilfe
CyberHunter

21.03.2011 - 10:45 Uhr

konnte das Problem nun lösen in dem ich die eingerichteten Profile aus der Registry lese.

Nun habe ich aber ein anderes Problem bei dem mir vlt. jemand helfen kann.

Hier mein Code:



            Microsoft.Office.Interop.Outlook.Application Oapp = null;
            Microsoft.Office.Interop.Outlook.NameSpace Ons = null;
            Microsoft.Office.Interop.Outlook.MAPIFolder fCal = null;
            Microsoft.Office.Interop.Outlook.Items eintraege = null;

            foreach (string profil in this.getMAPIProfile())  // 
            {
              Oapp = new Microsoft.Office.Interop.Outlook.Application();
              Ons = Oapp.GetNamespace("MAPI");
         
              Ons.Logon(profil, Type.Missing, false, true);

 fCal = Ons.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderCalendar);

 eintraege = fCal.Items;

             foreach (Microsoft.Office.Interop.Outlook.AppointmentItem item in eintraege)
            {
                if (item != null && item.Subject != null)
                {
                   Console.WriteLine(item.Start.ToString() + " - " + item.Subject);
                }
            }

           Ons.Logoff();
            Oapp.Session.Logoff();
            eintraege = null;

            (Oapp as Microsoft.Office.Interop.Outlook.ApplicationClass).Quit();

            Ons = null;
            Oapp = null;
            fCal = null;

            GC.Collect();
            GC.WaitForPendingFinalizers();


            }


Nun ist mein Problem das wenn z.B.: 3 Profile eingerichtet sind mir 3 mal das 1. Profil ausgelesen wird, obwohl die Methode 'Ons.Logon(profil, Type.Missing, false, true);'
mit einem anderen Profilnamen ausgeführt wird.
Also egal wie der Profilname im zweiten Schleifendurchlauf lautet, ich bekomme die Ergebnisse vom 1. Durchlauf.
Mir kommt es so vor als ob Outlook das Profil nicht schließt und daher das 1. Profil noch immer Offen ist.
Daher auch das zeug mit dem GarbeCollector am schluß.

Ich hoffe jemand kann mir weiterhelfen.

Danke für eure Hilfe
CyberHunter

20.03.2011 - 15:38 Uhr

Hallo zusammen,

ich versuche mthilfe des Namespace 'Microsoft.Office.Interop.Outlook'
eine Liste der Eingerichteten Outlook Profile zu bekommen.
(Systemsteuerung -- Mail -- Profile anzeigen)

Ich hab dies so versucht:



            Microsoft.Office.Interop.Outlook.Application Oapp = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.NameSpace Ons = Oapp.GetNamespace("MAPI");

            Microsoft.Office.Interop.Outlook.Accounts profile = Oapp.Session.Accounts;

            foreach (Microsoft.Office.Interop.Outlook.Account profil in profile)
                Console.WriteLine(profil.DisplayName);


Jedoch öffnet sich lediglich beim aufrufen von 'Oapp.Session.Accounts;' das Fenster welches sich auch beim start von Outlook öffnet wo ich dann die Profile auswählen kann.
Weiss jemand wie ich das bewerkstelligen kann?

Danke für eure Hilfe
CyberHunter

14.03.2011 - 09:23 Uhr

Hallo zusammen,

Ich habe eine ClickOnce Anwendung welche voraussetzt das das ".NET Framewrok 4" + "SAP Crystal Reports Runtime Engine for .NET Framework 4.0" installiert ist.
Diese 2 Komponenten habe ich unter den erforderliche Komponenten angehackt
mit der Option "Komponenten von demselben Speicherort wie die Anwendung heruterladen".

Nun ist mein Problem das das Setup versucht die SAP Crystal Reports Runtime vor dem .NET Framework zu installieren, was natürlich nicht möglich ist und das Setup dann mit einer Fehlermeldung abbricht.

Kann mir jemand sagen wie ich bei einer ClickOnce Anwendung einfluss auf die Reihenfolge der zu installierenden Komponenten nehmen kann?

Danke für eure Hilfe
CyberHunter

24.02.2011 - 16:01 Uhr

Habs nun hin bekommen.


 this.contextMenuStrip1.AutoClose = false;
            (this.contextMenuStrip1.Items[0] as ToolStripMenuItem).DropDown.AutoClose = false;

24.02.2011 - 10:10 Uhr

Hallo zusammen,

Ich verwende auf meiner WinForms Anwendung ein ContextMenuStrip.
Dieses besitzt mehrere ToolStripMenuItem´s.
Eines dieser Items besitzt weiderum ein DropDownItem mit einer ToolStripTextBox.

Mein Problem ist nun das wenn ich in die Textbox ein Zeichen wie z.B.: das '@' eingeben will sich das Contextmenü bei drücken der Alt und auch der 'Alt Gr' Taste sofort schließt.

Kann mir jemand sagen wie ich das Problem lösen kann?
Bin schon am verzweifeln.

Danke für eure Hilfe
CyberHunter

19.01.2011 - 14:11 Uhr

Danke für den Tipp.
Funktioniert leider nicht.
Wenn ich die aspx Seite lösche bzw. deren Inhalt lösche wird keine neue erstellt.

19.01.2011 - 13:40 Uhr

Hallo zusammen,

Ich musste heute mein Notebook neu aufsetzen.
Davor habe ich ein Silverlight Projekt auf einen externen Datenträger gesichert.
Nun habe ich das Projekt wieder vom externen Datenträger auf mein neu aufgesetztes Notebook kopiert.
Im Projekt befindet sich die Silverlight Anwendung sowie eine ASP.NET 2.0 Testpage.
Nun scheint es aber das die Verbindung zw. der Silverlight Anwendung und der ASP.NET Testpage nicht mehr vorhanden ist.
Wenn ich änderungen an der Silverlight Anwendung mache kommen diese nicht in der Testpage an, die *.xap Datei wird nicht aktualisiert und auch kein Haltepunkt wird erreicht. ("Der Haltepunkt wird momentan nicht erreicht. Für dieses Dokument wurden keine Symbole geladen")

Kann mir jeamand sagen wie ich mit Visual Studio die ASP.NET Testpage zu meiner Silverlight Anwendung neu erstellen bzw. die zwei wieder neu verheiraten kann?

Danke für eure Hilfe
CyberHunter

22.12.2010 - 21:46 Uhr

versuch mal statt:


if (worksheet.Cells[1, 2] == "")
{}

dieses:


textBox2.Text = worksheet.Cells[1, 2].Value == null ? "-" : worksheet.Cells[1, 2].Value.ToString();

Gruss
CyberHunter

22.12.2010 - 10:10 Uhr

Danke für deinen Tip Sebastian.Lange.
Konnte es nun so lösen indem ich statt pasteSpecial nur paste verwende
und danach die Spalten "zu Fuß" formatiere.
Damit klappt es auch mit 5 nachkommastellen.

Danke
CyberHunter

20.12.2010 - 17:39 Uhr

Hallo zusammen,

Ich habe in einer SQL Datenbank eine Tabelle welche einige Decimal Spalten enthält.
Diese Spalten sind vom Datentyp "decimal(13, 5)".

Über einen SQLDataadapter hole ich die Daten in eine Datatable:


_da.SelectCommand.CommandText = "Select * from Daten Order By ARTIKEL";
DataTable dt = new DataTable();
da.Fill(dt);

Die Spalten sind im Korrekten Format (Decimal) in der Datatable, dies habe ich kontrolliert.
Nun binde ich die Datatable an ein Datagridview:


dataGridView1.DataSource = dt;

Im nächsten Schritt kopiere ich den Inhalt des DataGridViews in die Zwischenablage:


Clipboard.SetDataObject(dataGridView1.GetClipboardContent(), true);

Nün öffne ich ein bestehndes Excel File und kopiere das ganze per Paste hinein:
Die Spalten im Excel sind auch als Decimal mit 5 nachkommastellen und tausender Trennzeichen definiert.


wbook.ActiveSheet.Range["A2"].Select();
sheet.PasteSpecial(DataFormats.Text, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);

Mein Problem ist nun das bei den Spalten mit 5 nachkommastellen im Excel das Komma einfach verloren geht. Im Datagridview steht der Wert korrekt drin.
Ich habe auch Decimal Spalten die in SQL + Excel mit 2 nachkommastellen definiert sind. Diese werden korrekt ins Excel übertragen nur eben die mit 5 nachkommastellen nicht. Da wird dann aus 3,85123 einfach 385.123,00000.

Hat jemand eine Idee bzw. einen Tipp wie ich das Problem lösen kann?

Danke für eure Hilfe
CyberHunter

14.12.2010 - 17:50 Uhr

wbook.ActiveSheet.Range["A4"].Select();

14.12.2010 - 17:29 Uhr

Bin einen Schritt weiter gekommen.

Falsch:


sheet.PasteSpecial(DataFormats.Text, false, false, false, false, false, Clipboard.GetDataObject());

Richtig:


sheet.PasteSpecial(DataFormats.Text, false, false, false, false, false, false);

Jedoch weiss ich noch nicht wie ich angeben kann wo die Daten eingefügt werden sollen, also nicht in die 1. Zeile sondern zb. in die 3.

Danke

14.12.2010 - 17:06 Uhr

Hallo zusammen,

Ich möchte Daten aus meinem Datagridview über das Clipboard in eine vorhanden Excel Datei schreiben.

So hole ich die Daten in die Zwischenablage:


dataGridView1.SelectAll();
            Clipboard.SetDataObject(dataGridView1.GetClipboardContent(), true);

Wenn ich nach dem ablegen der Daten (mit dem obigen Code) in die Zwischenablage manuell ins Excel gehe und in eine Bestimmte Zelle springe und strg+v drücke funktionierts genau so wie ich das will. Und es dauert gerade mal 3 Sekunden für 10000 Datensätze.

Nun möchte ich dies aber natürlich per code erleidgen.
Ich habe folgenden Ansatz versucht:



Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook wbook = excelApp.Workbooks.Open(@"C:\Temp\Vorlage.xls", Type.Missing, false, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
            Microsoft.Office.Interop.Excel.Worksheet sheet = wbook.Worksheets.get_Item(1);

sheet.PasteSpecial(DataFormats.Text, false, false, false, false, false, Clipboard.GetDataObject());


Hier müsste ich jedoch auch angeben in welcher Start-Zelle dies eingefügt werden soll, oder nicht?
Ich bekomme dann aber auch bei der letzen Zeile folgende Fehlermeldung:


Typkonflikt. (Ausnahme von HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))

Habs auch schon statt dem "Text" Format mit UnicodeText versucht, leider mit dem gleichen ergebniss.

Ich habe das ganze vorher ohne den weg über copy/paste gemacht.
Also in etwa so:



            for (Int32 i = 1; i < dt.Rows.Count + 4; i++)
            {
                
                sheet.Cells[i, 1] = dt.Rows[i - 1]["Spalte1"].ToString();
                sheet.Cells[i, 2] = dt.Rows[i - 1]["Spalte2"].ToString();
                sheet.Cells[i, 3] = dt.Rows[i - 1]["Spalte3"].ToString();
                sheet.Cells[i, 4] = dt.Rows[i - 1]["Spalte4"].ToString();
                //.... weiter bis Spalte25
            }


Das ganze funktioniert so halbwegs, jedoch bei einer Datatable von 10000 Datensätzen und 25 Spalten dauert das eine gefühlte ewigkeit (ca. 15 min.).
Mit Copy/Paste gerade mal 3 Sekunden.
Ich hoffe es kann mir jemand einen Tip geben wie ich die Daten aus der Zwischenablage richtig ins Excel bekomme.

Danke für eure Hilfe
CyberHunter

27.11.2010 - 19:12 Uhr

Danke für eure werde.
Werde mir das genauer anschauen.

Gruss
CyberHunter

25.11.2010 - 16:58 Uhr

verwendetes Datenbanksystem: <SQL-Server>

Hallo zusammen,

Ich möchte gerne eine Tabelle in meiner Datenbank A aus daten der Datenbank B befüllen.
Die 2 Datenbanken laufen auf 2 Unterschiedlichen Servern mit unterschiedlichen SQL Usern.

In habe mir das in etwa so vorgestellt:


SqlCommand cmd = new SqlCommand();
cmd.Connection = _cnIFS;

cmd.CommandText = "Inster into TableXYZ_DatenbankA (DatenbankA.Spalte1, DatenbankA.Spalte2, DatenbankA.Spalte3) values ('DatenbankB.SpalteX', 'DatenbankB.SpalteY', 'DatenbankB.SpalteZ') Where DatenbankB.SpalteA = 'irgendwas'"


Das _cnIFS ist das Connection Obejkt zur DatenbankA mit SQL Authentifizierung.
Wie kann ich dem Command nun beibringen das für DatenbankB eine andere Connection mit anderer SQL Authentifizierung zu verwenden ist?

Danke für eure Hilfe
CyberHunter

24.11.2010 - 22:57 Uhr

Hallo EFK381!

Ok mir ist nun klar warum das Microsoft so macht und auf den Marketplace setzt.

Und was spricht dagegen deine Anwendung über den Marketplace an Deine Außendienstler zu verteilen? Die Daten kannst Du ja nach der Installation bequem nachreichen, und das eben nur an Mitarbeiter so gibts dann auch keine Sicherheitsbedenken....

Wie meinst du das mit die Daten kannst du bequem nachreichen?
Die Daten kommen aus einer SQL Datenbank welche ich über einen Webservice oder RIA Service in die Anwendung bringe.
Ich müsste die Anwendung mit einem Login versehen damit nur unsere Mitarbeiter die Anwendung ausführen können bzw. die Firmeninternen Daten zu sehen bekommen, oder verstehe ich da was falsch.

Danke für deine Hilfe
CyberHunter

24.11.2010 - 21:57 Uhr

Danke für deine Antwort und den Link michlG.

Das schockt mich jetzt ein wenig, vorallem dieser Absatz:

My application is for my company / specific group of people only, how do I distribute the app only to them on Marketplace?
The Marketplace does not currently have the ability to provide locked-off areas for private applications. Other than a few key exceptions for Mobile Operators, there is no way to gate your application to a specific group of people or devices at this time.

Was hat sich M$ dabei nur gedacht.
Ich wollte eigentlich noch ein paar Geschäftsanwendungen für unsere Mitarbeiter (vorallem im Aussendienst) entwickeln. Das kann ich aber wohl vergessen.
Dann werden wir wohl bei den Windows Mobile Handys bleiben.

Ich hoffe nur das M$ dies bald ändert.
Im Absatz heisst es ja "not currently", das lässt noch etwas hoffen.

Gruss
CyberHunter

24.11.2010 - 21:15 Uhr

Hallo zusammen,

Ich bin seit ein paar Tagen besitzer eines WP7 Handys.
Als Entwickler habe ich mir natürlich gleich mal eine eigene Anwendung erstellt welche mir den Artbeistalltag etwas erleichtern soll.
Nun bin ich soweit fertig mit Entwickeln und testen der Anwendung im WP7 Emulator (Visual Studio 2010 prof.).
Jetzt will ich die Anwendung natürlich auf meinem Handy installieren, jedoch scheiter ich bisher daran.
Ich habe gelesen man kann sich bei create.msdn.com registrieren um 80€ pro Jahr um die Anwendung im Marktplace zu veröffentlichen um dann auch Geld dafür verlangen zu können. Das will ich aber mit dieser Anwendung nicht machen da MEINE Anwendung Daten bereitstellt welche nur für mich bestimmt und auch Interessant sind.
Wie kann ich nun die Anwendung auf meinem Handy installieren ohne das ich diese der öffentlichkeit zur verfügung stelle und dafür noch Geld bezahle?

Danke für eure Hilfe
CyberHunter

17.10.2010 - 19:50 Uhr

Danke für den Tip ErfinderDesRades!
Habs nun hinbekommen.

17.10.2010 - 13:24 Uhr

Hallo zusammen,

Ich habe folgende Klasse in meiner Silverlight Anwendung:


 public class Kunde
    {
        public Kunde() { }

        public string Firmenname { get; set; }
        public string Ansprechpartner { get; set; }
        public string Status{ get; set; }
    }

Nun überge ich der ItemsSource Property meines Datagrid eine List<T>:


List<Kunde> _list = new List<Kunde>();
...
dgKunde.ItemsSource = _list;

Mein Datagrid auf der MainPage.xaml:


 <sdk:DataGrid AutoGenerateColumns="False" Name="dgKunden" >
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTextColumn Binding="{Binding Path=Firmenname}" Header="Firmenname" Width="160" />
                            <sdk:DataGridTextColumn Binding="{Binding Path=Ansprechpartner}" Header="Ansprechpartner" Width="160" />

                            <sdk:DataGridTemplateColumn Header="Status" Width="120">
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate>
                                                                                <ComboBox Height="23">
                                            <ComboBoxItem Content="Aktiv" />
                                            <ComboBoxItem Content="Inaktiv" />
                                            <ComboBoxItem Content="Vorbereitung" />
                                        </ComboBox>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>

                        </sdk:DataGrid.Columns>
                    </sdk:DataGrid>

Der Status kann nur eines dieser 3 Werte haben (Aktiv, Inaktiv, Vorbereitung).
Mein Problem ist nun das ich es nicht hinbekomme das das SelectedItem der Combobox richtig aus der List<Kunde> angezeigt wird.

Dachte es müsste irgendwie so funktionieren:


 <ComboBox Height="23" SelectedItem="{Binding Status}">
                                            <ComboBoxItem Content="Aktiv" />
                                            <ComboBoxItem Content="Inaktiv" />
                                            <ComboBoxItem Content="Vorbereitung" />
                                        </ComboBox>

Wie bekomme ich die Combobox dazu den richtigen Wert zu selektieren?

Danke für eure Hilfe
CyberHunter