Laden...

Forenbeiträge von dietbeck Ingesamt 47 Beiträge

23.09.2012 - 18:51 Uhr

Hallo,

ich habe einen Fehler mit dem TableAdapterManager:


oPostkriegDataSet_TableAdapterManager.UpdateAll(this.oPostkriegDataSet)

Diese Zeile führt zu diesem Laufzeit-Fehler:

Object reference not set to an instance of Object.Systems.Collections.ListDictionaryPostkrieg2

Wenn ich Debugge sehe ich, dass das Datenset definiert ist, allerdings beim Hovern mit der Maus über das TableAdapterManager-Objekt kriege ich "No overload for method UpdateAll takes 0 arguments". Das Datenset ist aber definiert und war für das Kompilieren auch das richtige Objekt (offensichtlich).


oPostkriegDataSet_TableAdapterManager = new Postkrieg2.DataSet_Postkrieg2_Direct_To_SQLDatabaseTableAdapters.TableAdapterManager();

Kann mir jemand sagen, wo ich ansetzen muss ?

Danke
Dieter

24.06.2012 - 19:22 Uhr

verwendetes Datenbanksystem: SQL Server 2008

Hallo,

ich versuche Images in eine SQL-Server-Tabelle zu speichern. Da Datentyp der entsprechenden Felder ist "Image".

Über WPF-Datenbindung sind die Felder an Controls gebunden

<Image Grid.Column="0" Grid.Row="0" Height="Auto" HorizontalAlignment="Left" Margin="3" Name="frontImage" Source="{Binding Path=Front}" Stretch="Fill" VerticalAlignment="Center" Width="Auto" />

Eine entsprechende Insert-Methode ist automatisch generiert worden, die byte[]-Werte für die zu speichernden Images erwartet. Da die Image-Objekte vom Typ System.Windoes.Controls.Image sind habe ich eine Konversion wie folgt vorgenommen:


public byte[] getJPGFromImageControl(BitmapImage imageC)
        {
            MemoryStream memStream = new MemoryStream();
            JpegBitmapEncoder encoder = new JpegBitmapEncoder();
            encoder.Frames.Add(BitmapFrame.Create(imageC));
            encoder.Save(memStream);
            MessageBox.Show(memStream.GetBuffer().Length.ToString());
            return memStream.GetBuffer();
        }

Folgender Aufruf


byte[] test = this.getJPGFromImageControl(frontImage.Source as BitmapImage);
MessageBox.Show(Convert.ToString(oPostkriegDataSet_Images_Adapter.Insert(test, test)));

erzeugt den Fehler:> Fehlermeldung:

Object Reference not set to an instance of an object.System.Collections.ListDictionaryInternalPostkrieg2

"test" ist im Moment der Übergabe ein Byte-Array mit Inhalt (der Array ist >500000), sprich die Konversion scheint geklappt zu haben ?

Weiß jemand Rat ?

Danke
dietbeck

03.06.2012 - 22:06 Uhr

verwendetes Datenbanksystem: <SQL Server>

Hallo,

ich habe folgenden Code:


 oPostkriegDataSet = ((Postkrieg2.DataSet_Postkrieg2_Direct_To_SQLDatabase)(this.FindResource("dataSet_Postkrieg2_Direct_To_SQLDatabase")));
            // Lädt Daten in Tabelle "Cover_Main_Table". Sie können diesen Code nach Bedarf ändern.
            oPostkriegDataSetAdapter = new Postkrieg2.DataSet_Postkrieg2_Direct_To_SQLDatabaseTableAdapters.Cover_Main_TableTableAdapter();
            oCover_Main_Table_View = ((System.Windows.Data.CollectionViewSource)(this.FindResource("cover_Main_TableViewSource")));
            oPostkriegDataSetAdapter.Fill(oPostkriegDataSet.Cover_Main_Table);
            oCover_Main_Table_Row = oPostkriegDataSet.Cover_Main_Table.NewCover_Main_TableRow();
            //oPostkriegDataSet.Cover_Main_Table.AddCover_Main_TableRow(oCover_Main_Table_Row);
            //oPostkriegDataSet.Cover_Main_Table.Rows.Add(oCover_Main_Table_Row);
            //oCover_Main_Table_View.View.Refresh();
            oCover_Main_Table_View.View.MoveCurrentToLast();
            MessageBox.Show(oCover_Main_Table_View.View.CurrentPosition.ToString());
            //oCover_Main_Table_Row.SetAdded();

Mit einem entsprechenden Update-Aufruf kann ich auch problemlos existierende Einträge in der Datenbanktabelle updaten.


oPostkriegDataSetAdapter.Update(oPostkriegDataSet.Cover_Main_Table)

Nun will ich aber einen neuen Eintrag erstellen und füllen und das kriege ich nicht hin. Die entsprechenden Columns der Datenbanktabelle sind an Kontrollen im Form gebunden. Aber das Erzeugen einer neuen typisierten Row geht zwar


(oPostkriegDataSet.Cover_Main_Table.NewCover_Main_TableRow();

und scheint auch einen neuen Eintrag in der Datatable des Datasets zu erzeugen, aber der Update geht nicht, sprich eine Eingabe in einer der gebundenen Kontrollen (die leer sind) führt eben zu keinem Update der Datenbanktabelle über die Update-Methode.

Danke für Hilfe
dietbeck

28.05.2012 - 16:57 Uhr

Hi,

Ich habe NewRow verwendet, wie vorgeschlagen, verstehe aber nicht warum ich den generieerten Typ "...TableRow" dann nicht ordentlich verwenden kann

Kann mir jemand sagen, wie ich einen neuen Record auch tatsächlich in meine Datenbanktabelle kriege, ich bin neu in WPF, hoffe ich frage icht zu blöd.


MessageBox.Show(textBoxComment.Text);
                Postkrieg2.Postkrieg2DataSet1 postkrieg2DataSet1 = ((Postkrieg2.Postkrieg2DataSet1)(this.FindResource("postkrieg2DataSet1")));
                Postkrieg2DataSet1.Cover_Main_TableDataTable oDataTable = new Postkrieg2DataSet1.Cover_Main_TableDataTable();
                // Lädt Daten in Tabelle "Cover_Main_Table". Sie können diesen Code nach Bedarf ändern.
                Postkrieg2.Postkrieg2DataSet1TableAdapters.Cover_Main_TableTableAdapter postkrieg2DataSet1Cover_Main_TableTableAdapter = new Postkrieg2.Postkrieg2DataSet1TableAdapters.Cover_Main_TableTableAdapter();
                postkrieg2DataSet1Cover_Main_TableTableAdapter.Fill(postkrieg2DataSet1.Cover_Main_Table);
                //System.Windows.Data.CollectionViewSource cover_Main_TableViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("cover_Main_TableViewSource")));
                //cover_Main_TableViewSource.View.MoveCurrentToFirst();
                DataRow oNewRow = oDataTable.NewRow();
                oNewRow[1] = textBoxComment.Text;
                oNewRow[2] = "FALSE";
                MessageBox.Show(oNewRow[1].ToString());
                //Postkrieg2DataSet1TableAdapters.Cover_Main_TableTableAdapter adapter = new Postkrieg2DataSet1TableAdapters.Cover_Main_TableTableAdapter();
                postkrieg2DataSet1Cover_Main_TableTableAdapter.Update(oDataTable);
                MessageBox.Show(oDataTable.Rows.Count.ToString());


Mit dem Code oben, der größtenteils über den Designer im Event Window_Load generiert wurde, mit den Objektvariablen überwiegned lokal, habe ich nun in ein ButtonClick event überführt.
Von der ersten zur zweiten MessgeBox verschwindet der Wert meines textboxComment.Text und wird "null" bzw der Inhalt der oNewRow[1] ist null. Mit dem Update passiert gar nichts, sprich es wird weder eine Row in der oDataTable generiert noch in der gebundenen Datenbanktabelle.

Wie gesagt, mir geht es drum dies erstmal hinzukriegen.

Danke
dietbeck

27.05.2012 - 21:32 Uhr

Hallo

ich komme bei der folgenden Fehlermeldung nicht weiter:

'System.Data.DataRow' does not contain a constructor that takes 0 arguments

Diese Zeile verursahct den Fehler:


Postkrieg2DataSet1.Cover_Main_TableRow oNewRow = new Postkrieg2DataSet1.Cover_Main_TableRow();

im folgenden automatisch generierten Designer-Code:


[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
            [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")]
            internal Cover_Main_TableRow(global::System.Data.DataRowBuilder rb) : 
                    base(rb) {
                this.tableCover_Main_Table = ((Cover_Main_TableDataTable)(this.Table));
            }

            public Cover_Main_TableRow()
            {
                // TODO: Complete member initialization
            }

Vielen Dank für Hilfe
dietbeck

05.02.2012 - 18:25 Uhr

Hi,

habe den Code unten.

Nun wird das Abspielen der Sound-Datei immer weiter verzögert, je öfter ich innerhalb meiner Session die Sound-Datei abspiele. Sprich Das Abspielen setzt mit zunehmender Verzögerung ein. Wie kommt das und wie vermeide ich das ?

Danke
dietbeck


        /// <summary>
        /// Play Sound File
        /// </summary>
        /// <param name="sFileName"></param>
        public void playSound(string sFileName)
        {
            try
            {
                // Add LoadCompleted event handler
                player.LoadCompleted += new AsyncCompletedEventHandler(LoadCompleted);
                // Set location of the .wav file
                player.SoundLocation = sFileName;
                // Load Asynchronously
                player.LoadAsync();
            }
            catch (System.IO.FileNotFoundException e) 
            {
                MessageBox.Show("Sound-Datei nicht gefunden" + "\r\n" + "\r\n" + e.ToString());
            }
        }

05.02.2012 - 18:19 Uhr

Hi,

wie kann ich zwei DateTime-Objekte voneinander subtrahieren und zwar nur bis zur Sekunde. Sprich der Sub-Sekunden-Berich soll nicht subtrahiert werden. Also "3-2" Sekunden und nicht 3.99483-2.71227.

Danke
dietbeck

04.10.2011 - 22:10 Uhr

Hallo,

folgender Cpde löscht eine Tabellenzeile im entsprechenden DataGrid, aber nicht die koreepondierende Zeile in der Datenbanktabelle. Wenn ich das richtig recherchiert habe sollte das eigentlich funktionieren ?

Danke
dietbeck


DataRowView drv = (DataRowView)_datagrid.CurrentItem;
drv.Delete();
drv.DataView.Table.AcceptChanges();
adapter.Update(ds.TestTabelle);
02.10.2011 - 21:32 Uhr

Hallo,

ich habe dieselbe Code-Logik und genau dasselbe Problem. Hat jemand eine Problemlösung ?

Danke
dietbeck

17.09.2011 - 23:10 Uhr

Trotz Code-Beispielen kriege ich immer wieder Fehler. Kann mir jemand sagen,wie ich das zum Laufen kriege.

Danke
dietbeck

    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
        Title="MainWindow" Height="350" Width="525" Closing="Window_Closing">
    <Grid>
        <dg:DataGrid x:Name="_dataGrid" Height="200" HorizontalAlignment="Left" Margin="12,12,0,0" VerticalAlignment="Top" Width="200" />
    </Grid>

_datagrid.ItemsSource = ds.Tables[0].DefaultView;

Der Name "_datagrid" ist im aktuellen Kontext nicht vorhanden.

10.09.2011 - 23:46 Uhr

Hallo,

ich möchte den Zellinhalt einer einspaltigen Tabelle im Rahmen eines RoeEditEnding event auslesen. Habe folgendes


private List<string> getLookupTableCellContent(DataGrid dataGridTable, DataGridRowEditEndingEventArgs e, int numberOfColumns)
        {
            List<string> rowContent = new List<string>();
            try
            {
                //go through the cells of the row and collect the individual cell contens of the row
                for (int i = 0; i < numberOfColumns; i++)
                {
                    FrameworkElement dataGridCell = dataGridTable.Columns[i].GetCellContent(e.Row);
                    if (dataGridCell.GetType() == typeof(TextBlock))
                    {
                        rowContent.Add(((TextBlock)dataGridCell).Text);
                        MessageBox.Show(((TextBlock)dataGridCell).Text);
                    }
                }
            }

Problem ist dass der Textblock leer ist, obwohl ich in der Tabellenzeile was eingetragen habe. Wie gesagt einspaltige Tabelle. Wenn ich das ganze mit einem CellEndEditing event und einer entsprechenden TextBox verarbeite, dann geht's. Ich will das aber flexibel für eine Zeile mit einer oder mehreren Spalten gestalten.

Danke für Hilfe
Dieter

28.08.2011 - 20:28 Uhr

Sorry, kann ich den Beitrag irgendwie nach WPF schieben ?

Das Konstrukt ist notwendig, um bei einem Refresh auch wieder den Tabelleninhalt angezeigt zu bekommen.

Dieter

27.08.2011 - 22:02 Uhr

Hallo,

ich gebe in die zweite Tabelle ("Stadt") in der leeren Zelle einen Wert ("Test1" ein.

siehe Anhang erstes Bild.

der Wert "verschwindet", wenn ich die Zelle verlasse, landet aber (wie beabsichtigt) in der db.

Wenn ich dann auf ein anderes Tab wechsle und wieder zurückkomme, steht meine Tabelle "Stadt" im Bereich der Tabelle "Land", der neue Wert "Test1" ist in der Tabelle "Land" gelandet.

Siehe Anhang zweites Bild

  1. Wie erreiche ich, dass der Wert, der in der Tabelle Stadt eingegeben wurde auch tatsächlich dort landet ?
  2. Wie erreich ich, dass die Tabellen automatisch resettet werden, ohne, dass ich das Tab wechseln muss.
  3. Warum wird die Stadt-Tabelle repositioniert ?

Danke
Dieter

Hier der relevante Code

/Tab Lookups chosen
            if (tabControlPostkrieg.SelectedIndex == 3)
            {
                foreach (string sTable in lookupsTables) // Loop through lookup tables
                {
                    string sColumn = sTable;
                    string sColumnAlias = sTable;
                    //show the content of the individual lookup tables
                    if (sTable == "Name")
                    {
                        //this gets first name and surname
                        adapter = handleDBConnection.selectTwoColumnOnSingleTable(sColumn, "Vorname", sColumn, "Vorname", sTable);
                    }
                    else
                    {
                        adapter = handleDBConnection.selectOneColumnOnSingleTable(sColumn, sColumnAlias, sTable);
                    }
                    adapter.Fill(datasetTable);
                    //only to get the content of the DataSet for debugging
                    //MessageBox.Show(datasetTable.GetXml());
                    switch (sTable)
                    {
                        case "Land":
                            //only works when the AutoGenerateColumns attribute is set to true
                            //the Copy() is required to have the content of the dataset preserved. Otherwise the Reset()
                            //below will delete the dataset content entirely and thus tables would be empty
                            this.dataGridLand.ItemsSource = datasetTable.Copy().Tables[0].DefaultView;
                            break;
                        case "Stadt":
                            this.dataGridStadt.ItemsSource = datasetTable.Copy().Tables[0].DefaultView;     
                            break;
                        case "Herkunft":
                            this.dataGridHerkunft.ItemsSource = datasetTable.Copy().Tables[0].DefaultView;
                            break;
                        case "Waehrung":
                            this.dataGridWaehrung.ItemsSource = datasetTable.Copy().Tables[0].DefaultView;
                            break;
                        case "Name":
                            this.dataGridName.ItemsSource = datasetTable.Copy().Tables[0].DefaultView;
                            break;
                    }
                    //completely resets the Dataset, thus removes all tables entirely
                    datasetTable.Reset();
                }
16.07.2011 - 07:28 Uhr

Hallo,

es sieht wie im Anhang aus. Ziel ist alle fünf Grids mit derselben Ausdehnung zu haben, wenn maximiert wurde (wie erreiche ich in diesem ZUsammenhang, dass die Spalten gescrollt werden können, da noch sehr viel mehr Einträge kommen werden.

Danke
dietbeck

[xml]<Grid DataContext="{Binding}" Width="Auto" Height="Auto">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <DataGrid AutoGenerateColumns="True" Height="Auto" HorizontalAlignment="Stretch" Name="dataGridLand" VerticalAlignment="Stretch" ItemsSource="{Binding ElementName=dataGridLand}" SelectionChanged="dataGridLand_SelectionChanged" DataContext="{Binding}" IsEnabled="True" GotFocus="dataGridLand_GotFocus" CanUserAddRows="True" SelectionMode="Single" SelectionUnit="Cell" ColumnWidth="*" Margin="-3,0,453,-1" Width="Auto"> </DataGrid>
                <DataGrid AutoGenerateColumns="True" Height="Auto" HorizontalAlignment="Stretch" ItemsSource="{Binding ElementName=dataGridStadt}" Name="dataGridStadt" VerticalAlignment="Stretch" ColumnWidth="*" Margin="106,0,334,-7" Width="Auto" />
                <Button Content="Insert Land" Height="23" HorizontalAlignment="Left" Margin="6,282,0,0" Name="buttonInsertLand" VerticalAlignment="Top" Width="104" Click="buttonInsertLand_Click" Grid.ColumnSpan="2" />
                <TextBox Height="23" HorizontalAlignment="Left" Margin="6,253,0,0" Name="textBoxLand" VerticalAlignment="Top" Width="104" Grid.ColumnSpan="2" />
                <TextBox Height="23" HorizontalAlignment="Left" Margin="203,250,0,0" Name="textBoxStadt" VerticalAlignment="Top" Width="101" />
                <Button Content="Insert Stadt" Height="23" HorizontalAlignment="Left" Margin="203,282,0,0" Name="buttonInsertStadt" VerticalAlignment="Top" Width="101" />
                <DataGrid AutoGenerateColumns="True" Height="Auto" HorizontalAlignment="Stretch" ItemsSource="{Binding}" Name="dataGridName" Margin="225,0,226,-5" ColumnWidth="Auto" Width="Auto" />
                <DataGrid AutoGenerateColumns="True" Height="Auto" HorizontalAlignment="Stretch" ItemsSource="{Binding}" Name="dataGridHerkunft" VerticalAlignment="Stretch" Margin="436,-1,25,-3" ColumnWidth="Auto" Width="Auto" />
                <DataGrid AutoGenerateColumns="True" Height="Auto" HorizontalAlignment="Stretch" ItemsSource="{Binding}" Name="dataGridWaehrung" VerticalAlignment="Stretch" Margin="335,0,125,-5" SelectionChanged="dataGridWaehrung_SelectionChanged" ColumnWidth="Auto" Width="Auto" />[/xml]
14.07.2011 - 20:48 Uhr

Hallo,

wie schaffe ich es, dass ein DataGrid mit dem Form mitskaliert ? Sprich wenn ich das Form maximiere, dann sollen sich auch die anderen darin enthaltenen Objekte proprotional mitvergrössern. Welche XAML-Eingenschaften steuern dies und wie ?

Vielen Dank für die Hilfe an einen XAML-Novizen.

dietbeck

24.06.2011 - 20:02 Uhr

Hallo,

wie kann ich eine Änderung in einem DataGrid in die Datenbank schreiben ?

Ich habe folgendes versucht


private void dataGridLand_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
        {
            adapter.Update(dataset);
        }

Ich kann die Zelle ändern, aber die Änderung wird nicht in die Daten bank rückgeschrieben. Der Code wird aber ausgeführt, "ohne" Ergebnis.

adapter ist ein SqlDataAdapter-Objekt, dataset ein DataSet-Objekt

Wäre dankbar für entsprechende Hinweise

Danke
dietbeck

26.08.2009 - 10:47 Uhr

Hi,

kann mir jemand sagen, wie ich so etwas auslese:

<Answers>
<Answer>Eins</Answer>
<Answer>Zwei</Answer>
</Answers>

bsiher habe ich es mit var...select new... noch nicht geschafft, die beiden <Answer> tags separat auszulesen und beide Werte in der IEnumerable zu erhalten bzw. verarbeiten zu können.

Danke für Hilfe
dietbeck

24.08.2009 - 17:52 Uhr

Ok, alles klar. Danke für Eure Antworten, jetzt gehts.

24.08.2009 - 17:15 Uhr

Hi,

Ich habe eine Abfrage für eine XML-Datei, die entsprechende Tags durchläuft. Nun kommt aber nicht jeder Tag immer vor also zB

<Command>
<Name>Rundes Format</Name>
<Format>Rund</Format>
</Command>

<Command>
<Name>Kein Format</Name>
</Command>

Im zweiten Fall fehlt <Format> und ich kriege eine NullException mit folgendem, wie kann ich verhindern, dass der Code in diese Exception reinläuft, fehlende Tags, die keinen Wert haben, sind sicher eine häufige Erscheinung:

var commands = from command in xmlDoc.Descendants("Command")
select new
{
Name = command.Element("Name").Value,
Format = command.Element("Format").Value
};

Danke
dietbeck

17.08.2009 - 11:49 Uhr

Hi,

ist es möglich mit Linq to XML die <!--...--> XML-Kommentare auszulesen ?

Danke
dietbeck

13.08.2009 - 20:37 Uhr

LINQ to Xml 🙂
Was bequemeres gibts in meinen Augen zur Zeit nicht.

Jawoll, prima. 👍

13.08.2009 - 07:56 Uhr

@kleines_eichhörnchen

Danke für die Antwort. Kannst Du mir oder jemand anders bessere Komponenten für xml nennen, auch für FTP wäre prima.

Danke
Dietbeck

12.08.2009 - 17:58 Uhr

Hallo,

ich wollte mir ein GUI zume Auslesen und editieren einer xml-Datei schreiben. Dazu habe ich einen xml-Parser "Chilkat" gefunden, der ein recht gutes API hat. Den wollte ich jetzt verwenden und direkt in mein Form einbinden. Ich kriege aber die untenstehende Message, sobald ich ein Objekt des Parsers referenziere. Wie kriege ich das hin, dass ich dies im FOrm verwenden kann ?

Danke
dietbeck

DLL 'C:\Documents and Settings...\ChilkatDotNet.dll' is attempting managed execution inside OS Loader lock. Do not attempt to run managed code inside a DllMain or image initialization function since doing so can cause the application to hang.

15.07.2009 - 09:52 Uhr

Hallo,

nein, ich nutze die System.Windows.Forms.Textbox. Ich bin relativ neu in der Welt von C#, bzw. programmiere nur gelegentlich. Ich will einfach Textboxen dynamisch in mein TableLayoutPanel einbauen und diese entsprechend ausrichten. Dazu wollte ich die Margins anpassen. Das Problem ist, dass ich ControlCollection im späteren Verlauf nutze und dies die Control.TextBox nicht aufnimmt.

Also bleibe ich, wenn möglich bei meiner Forms.TextBox, aber wie setze ich die Margins ohne Thickness ?

Danke
Dietbeck

15.07.2009 - 08:55 Uhr

Hallo,

ok, dass mit der Height und Width klappt nun, habe aber gleich follow-up-Probleme, da mein Code auf einer System.Windows.Forms.TextBox und nicht auf einer System.Windows.Controls.TextBox basiert

Daher die Frage,

wie kann ich die Margins dieser System.Windows.Forms.TextBox setzen, OHNE Thickness verwenden zu müssen (da ich dann wieder bei dem Problem lande, dass die textBox.Margin vom Typ Padding ist und nicht vom Typ Thickness)

Danke
dietbeck

15.07.2009 - 07:17 Uhr

Hallo, danke, ja der Verweis hat gefehlt.

Nun versuche ich folgendes:

textBox.Margin = new Thickness(3)

erhalte aber den Fehler, dass Konvertierung von Thickness nach Padding nicht möglich ist.

Meine TextBox ist vom Typ System.Windows.Forms.TextBox, ich brauche die Name-, Size-Eigenschaften, die aber bei System.Windows.Control.TextBox nicht vorhanden sind.

14.07.2009 - 21:31 Uhr

Hallo,

Obwohl ich den System.Windows-Namespace eingebunden habe steht Thickness nicht zur Verfügung. Woran kann das liegen ?

Danke
dietbeck

14.07.2009 - 16:04 Uhr

Hallo,

ich habe ein TableLayoutPanel und die Zellen entsprechend pro Reihe und Spalte prozentual skaliert. Nun möchte ich abhängig von der Grösse einer Zelle eine Control darin positionieren, und die Grösse der Control eben in Abhängigkeit der Grösse der Zelle skalieren. Ich kann nicht sehen, wie ich das erreichen kann, bzw. wie ich an die "Size" der Zelle herankomme.

Daran gleich anschliessend, kann ich in eine Zelle 2 Controls positionieren und gleichzeitig nutzen ? Auch hier müsste ich dann entsprechend skalieren und eine von rechts, die andere von links einsetzen.

Kann mir jemand helfen.

Danke
dietbeck

13.07.2009 - 08:12 Uhr

Würde das funktionieren und eine neue Connection für jeden File-Load verhindern ?

foreach (String filePathName in ArrayList)
{
ftpUpload.ftpUploadConnect(ftpAddress + "eb/" + Utility.getDate() + filePathName, "", "");
ftpUploadRequest.KeepAlive = true;
}
ftpUploadRequest.Abort();

12.07.2009 - 20:51 Uhr

Hallo,

mir ist nicht ganz klar, ob ich mit der FTPWebRequest-Klasse auch in der Lage bin multiple Dateien pro Verbindung hochzuladen. Das untere wollte ich vermeiden, da dann ja pro Datei jedesmal eine Verbindung aufgemacht und wieder geschlossen wird.

Für Hinweise dankt
dietbeck

foreach (String filePathName in ArrayList)
{
ftpUpload.ftpUploadConnect(ftpAddress + "eb/" + Utility.getDate() + filePathName, "", "");
ftpUploadRequest.Abort();
}

06.07.2009 - 17:10 Uhr

Alles klar, danke. Einen auomatischen Refresh gibt es also nicht ?!

03.07.2009 - 23:55 Uhr

Hallo,

eigentlich wird die Zentrierungszeile immer erreicht, sobald eine PictureBox gefunden wird, dh. erstmal egal ob Bild oder nicht, die Zentrierung wird gemacht. Ich hab die Codezeile aber auch im inneren if-Statement gehabt, selbes Problem, immer nur das erste Bild wird zentriert.

03.07.2009 - 23:51 Uhr

Hallo,

ich habe eine Codesequenz, die Images in PictureBoxen um 90 Grad dreht. Der Code geht auch ohne Fehler, nur werden die Bilder erst dann gedreht sichtbar, wenn ich vom Form wegklicke auf ein anderes offenes Programm und dann wieder zurückgehe. Erst wenn der Fokus dann wieder auf meinem Form ist, sind die Bilder gedreht (VS2008). Ist das ein Bug ?

01.07.2009 - 22:16 Uhr

Hi,

kann mir jemand sagen, warum nur das Bild in der ersten PictureBox zentriert wird, nicht aber die Bilder in den anderen PictureBoxen (VS2008)?

Danke
dietbeck

foreach (Control ctl in tableLayoutPanel1.Controls)
            {
                if (ctl is PictureBox)
                {
                    pB = (PictureBox)ctl;
                    pB.SizeMode = PictureBoxSizeMode.CenterImage; // hier
                    parentControl = (TableLayoutPanel)pB.Parent;
                    cB = (CheckBox)parentControl.GetControlFromPosition (parentControl.GetColumn(pB), parentControl.GetRow(pB) + 1);
                    index = Convert.ToInt16(ctl.Name.Substring (ctl.Name.LastIndexOf('x') + 1));
                    if (index <= theThumbnails.Count)
                    {
                        oneImage = (Image)theThumbnails[index - 1];
                            //(System.Drawing.Bitmap)Image.FromFile (theThumbnails [index-1].ToString());
                        pB.Image = oneImage;
                        cB.Checked = true;
                    }
                }
            }
26.06.2009 - 07:59 Uhr

Hallo Michelbeck,

der Ansatz hiflt mir schonmal sicher weiter. Tatsächlich soll jede PictureBox ein anderes Image erhalten. Problemlos wäre der Ansatz dann, wenn die PictureBox-Controls im foreach auch tatsächlich in der Reihenfolge durchlaufen werden, wie Sie erzeugt wurden. Dann ist die Zuordnung der Bilder aus einer ArrayList ok. Wenn die PictureBox-Controls aber "random" durchlaufen werden, dann ist es ein Problem. Es soll in jedem Fall so sein, dass pictureBox1 zuerst, danach pictureBix2 etc. gefüllt werden soll. Und nicht pictureBix10, dann pictureBox4, dann pictureBox20.

Obwohl ich denke gerade, dass ich das dann über das Parsen der Name Property der pictureBox lösen können müsste, indem ich die entsprechende Zahl am Ende isoliere und dieser dann das entsprechende Bild der ArrayList zuordne. Es sollen nur soviele PictureBox-Controls gefüllt werden, wie Bilder in der ArrayList sind, und eben immer "von vorne", also beginnedn mit pictureBox1.

Gruss
dietbeck

26.06.2009 - 07:06 Uhr

Hallo,

wäre schön wenn mir jemand helfen könnte.

Ich habe eine Reihe von pictureBox-Objekten in meinem Form, genannt pictureBox1, pictureBox2, pictureBox3...

Ich möchte diesen mit einem while-, foreach- oder anderem Loop Images zuordnen. Ich hatte gedacht die Zahl im Namen der pictureBoxen zu benutzen. Ich habs aber bisher noch nicht hingekriegt, die Zahl entsprechend zu isolieren und für den Loop zu benutzen um dann die einzelnen pictureBoxen anzusteuern, da ich so ja mit einem String arbeiten muss, mit dem ich im Endeffekt kein pictureBox.Image Objekt erstellen kann.

dietbeck

29.06.2007 - 14:01 Uhr

Hallo herbivore,

ja, danke. Ich schaue mir den Code an. Im Moment habe ich den Bedarf nicht, da von "unten nach oben" für mich allein auch ok ist. Und das funktioniert so wie es soll. Aber vielleicht brauche ich es eben doch nochmal anderweitig.

Jedenfalls danke für die Hilfe
Dieter

29.06.2007 - 13:50 Uhr

@BennyP

Nein, Array.Sort sortiert mir eben nicht wie gewünscht. Ich habe nach wie vor ...3212... vor ...2198...

29.06.2007 - 13:48 Uhr

Hallo,

ja funktioniert. Warum aber funktioniert es anders herum (von "oben" nach "unten"), wie man es erwarten würde) nicht ? Für mein Programm, dass nur ich benutze, kann ich damit leben, von "unten" nach "oben" zu markieren.

Danke
Dieter

29.06.2007 - 07:27 Uhr

Hallo,

es ist so dass ich innerhalb des Arrays dann

cims3212.jpg
cims2198.jpg

sortiert kriegen muss, so dass "...3212" NACH "....2198" kommen muss. Array.Sort nehme ich an erkennt die Zahlen nicht als solche und sortiert daher nicht danach.

Wie müsste ich also vorgehen, muss ich den String "zerlegen" und dann irgendwie sortieren ?

28.06.2007 - 17:57 Uhr

Hallo,

wenn ich OpenFileDialog auf Multiselect setze und mehrere Dateien auswähle, dann finde ich beim enumerieren, dass der letzte File beim Durchlaufen von OpenFileDialog.FileNames an erster Stelle kommt, während alle anderen Files danach in der richtigen Reihenfolge im String-Array abgelegt sind.

Wie kommt das und was muss ich tun um den ersten File auch an erster Stelle zu haben ?

Danke
Dieter

27.06.2007 - 22:46 Uhr

Hallo,

wie gehe ich am besten vor um einen "A generic error occured in GDI+" zu diagnostizieren ?

Danke
dietbeck

20.06.2007 - 06:21 Uhr

Hallo,

danke für die Hinweise. Es lag in der Tat am fehlenden zweiten Parameter, ImageFormat.JPeg, so dass das Bild im png-Format gespeichert wurde, trotz .jpg-Endung

18.06.2007 - 01:01 Uhr

Hallo,

mache ein

theImage.RotateFlip(RotateFlipType.Rotate90FlipNone);

Klappt auch, aber wenn ich das Bild dann rotiert abspeichere, ist der File 10x grösser als der ursprüngliche File, obwohl die Pixelgrössen unverändert sind (ausser natürlich, dass diese nun umgekehrt sind). Aber natürlich soll(te) die Speichergrösse gleich bleiben. Wie kommt das zustance, und was kann ich tun um das zu verhindern.

Danke
dietbeck

18.06.2007 - 00:21 Uhr

Hallo,

wie gehe ich vor, wenn ich zwei oder mehr jpg-Bilder aneinanderhängen will, so dass ein neuer jpg-file entsteht, der die Bilder unter- oder nebeneinander enthält.

Danke
dietbeck

23.07.2006 - 22:25 Uhr

Ich habe eine kleine Forms-basierte C#-Anwendung, die einen Oracle-Login realisiert. Ich will dies nun in anderen Anwendungen nutzen. dll geht nicht und als exe kann ich es nicht einbinden. Gibt es eine Moeglichkeit diese Anwendung innerhalb einer anderen Anwendung einzubinden ?

28.04.2006 - 17:42 Uhr

Hallo,

wie schaffe ich es, dass bei einem Form keine der Textboxen den Cursor-Focus beim Startup bekommt, sondern ich selbst bestimmen moechte, in welche Textbox ich zuerst schreiben will.

Danke
Dieter