Laden...
D
Benutzerbeschreibung

Forenbeiträge von Da_Flo Ingesamt 269 Beiträge

25.06.2009 - 11:52 Uhr

Hallo! ich möchte gerne im Outlook einen button haben, der diese email automatisch in in ein bestimmtes verzeichniss kopiert.
oder das mail im html format in die zwischenablage legt, das würde mir auch schon genügen.

24.06.2009 - 08:33 Uhr

Hallo!

Es geht darum: Ich habe eine DataGridView auf dem ein Filter liegt den ich über
ne DataView gesetzt habe, dieser sieht so aus das nur Daten anzeigt wo das feld InProduktion = 0 ist, nun setze ich über einen Button das feld auf 1. Und genau jetzt möchte ich das sich die DataGridView anhand des Rowfilters der DataView aktualissiert!

ich habe auc heine zweite tabelle wo nur daten angezeigt werden wo inProduktion=1 ist, d.h wenn ich den button klicke will ich das der eintrag in der einen tabelle verschwindet und in der anderen auftaucht. Bisher hab ich immer ein Update des DataAdapters gemacht, aber das halte ich mittlerweile nicht mehr für sinnvoll, das sollte doch auch einfach so zu lösen sein mit rowfilter?

24.06.2009 - 07:53 Uhr

Hallo!

ich hab mir den code für ne DataGridViewRichTextBoxColumn von Codeproject( http://www.codeproject.com/KB/grid/RtfInDataGridView.aspx ) geholt.
Nun Funktionert das ganze tadellos, was das Anzeigen des RTF Textes betrifft, was mich jedoch stört ist das es ihm Egal ist welche AutoSizeRowsMode ich setze. Es wird immer nur die erste zeile des textes angezeigt.


            DGV_TXT.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;
            DGV_TXT.DefaultCellStyle.WrapMode = DataGridViewTriState.True;

ich könnte zwar die höhe der zeilen zwar manuell setzen, aber das halte ich nicht für sinnvoll, wenn ich ja unterschiedliche texte(von der länge her) erwarte...

18.06.2009 - 12:33 Uhr

Hallo!

ich hab jez entdeckt dass man im visualStudio das programm veröffentlichen kann das so ne art installer generiert wird...und auch di update funktion hab ich angesehn, was echt super ist wenn das programm auf mehreren pc's laufen soll.
Nun meine frage:
gibt es da irgendwo nähere einstellungen für das Veröffentlichen?
z.b.: wohin er das ganze installiert bzw in welchen ordner er das im startmenü kopiert?

weil nach jedem update ist wieder der alte startmenü eintrag vorhanden....also wenn ich den ordner vorher in einen unterordner verschoben habe....

15.06.2009 - 09:43 Uhr

Hallo!

ich habe in meinem Programm eine erinnerungsfunktion integriert, wo ich, wenn es offene erinnerungen gibt, den Text in Kopf des Forms blinken lasse, nun ist das problem wenn man länger mit dem programm nicht arbeitet(ich meine minimiert, offen ist es schon), bekommt man dieses Blinken des Textes nicht mit. Nun bin ich nach der suche irgendwie das symbol in der taskleiste blinken zu lassen, ich bilde mir ein sowas schon gesehen zu haben, dass es blau blinkt.....hoffe ihr könnt mir da helfen

lg Flo

15.06.2009 - 09:39 Uhr

danke, funktioniert perfekt 😃

10.06.2009 - 14:27 Uhr

Hallo!

Ich möchte gerne eine Listbox nur zum anzeigen verwenden, also ich möchte nicht das die Selection per maus verändert werden kann. jedoch will ich dass die Selection per programmcode listbox.setSelected(int, bool) gesetzt werden kann.

mfg Flo

29.05.2009 - 06:57 Uhr

Hallo!

ich spiel mich jez schon lange mit dem das ich durch ein Form von control zu control hüpfen kann mit tab. doch irgendwie haut das mit dem tabindex nicht so ganz hin. und auch bei DataGridView wenn ich die Spalten mit DisplayedIndex ordnen will, passt das hinten und vorne nicht zusammen wie ichs haben will. Am schluss passe ich halt das sqlstatement immer an, aber das soll ja auch nicht der sinn der sache sein.

ein aktuelles problem:

ich hab ein Verwaltungsprogramm programmiert, wo man am anfang login daten eingeben muss. Hier will ich das man von Feld username mittels tab auf das Feld passwort springen kann.
Nun will ich aber auch das am anfang der Focus auf dem passwortfeld liegt, da für jeden pc ein standard user eingestellt werden kann der gleich eingetragen wird. Jez geht das mit dem focus aber irgendwie nicht, jez müsste ich den tabindex des passwortfeldes auf 0 setzen. aber dan haut der tabsprung von Username auf passwort wieder nicht hin....

mfg Flo

27.05.2009 - 10:32 Uhr

ich hab von kurzem auch sowas gebraucht.

such mal nach SqlDependency 😉

26.05.2009 - 13:56 Uhr

ja ich lasse jedesmal wenn paint aufgerufen wird einen Eintrag in einr Log datei erstellen...und die Aufrufe sind am anderen PC um vieles höher

26.05.2009 - 13:40 Uhr

hmm, aber sollte sich das programm nicht trotzdem gleich verhalten?...sprich gleich viele paint aufrufe bei der selben aktion?!

26.05.2009 - 11:33 Uhr

Danke, ich werd mir jez mal das mit DoubleBuffering anschaun;)
hmmm.... aber kannst du mir erklären wieso das von pc zu pc zunterschiedlich ist?

26.05.2009 - 11:10 Uhr

danke für den hinweis, aber irgendwie funktioniert das bei mir nicht so ganz.

dieser code sollte doch in jede zelle, links oben ein quadrat zeichnen, oder seh ich das falsch?


        private void DGV_MonthView_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                Rectangle rect = new Rectangle(e.CellBounds.X, e.CellBounds.Y, 6, 6);
                e.Graphics.FillRectangle(new SolidBrush(Color.Blue), rect);
            }
}

26.05.2009 - 10:09 Uhr

hier noch meine paint methode 😉


 private void DGV_MonthView_Paint(object sender, PaintEventArgs e)
        {
            SystemMessage.printFile("paint DGV", "Urlaubsplanung", "LOG\\paintDGV.log");
            DGV_MonthView.ColumnHeadersHeight = 40;            
            paintCells(e);
        }
        private void paintCells(PaintEventArgs e)
        {
            int y = DGV_MonthView.ColumnHeadersHeight;
            foreach (DataGridViewRow row in DGV_MonthView.Rows)
            {
                int x = DGV_MonthView.RowHeadersWidth;
                foreach (DataGridViewCell cell in row.Cells)
                {
                    if (cell.Visible)
                    {//ZAT,ZAG,M,U,K,AB,A,BH,BS,S
                        String s = cell.ToolTipText;// = "B,ZAT,.."; // die ganzen Status mit , getrennt
                        int cur_ColumnWidth = DGV_MonthView.Columns[cell.ColumnIndex].Width;
                        int RECT_HEIGHT = 6;
                        int RECT_WIDTH = 6;
                        Rectangle rect = new Rectangle();
                        if (s.Contains("'ZAT'"))
                        {
                            rect = new Rectangle(x, y, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Red), rect);
                        }
                        if (s.Contains("'ZAG'"))
                        {
                            rect = new Rectangle(x + (1 * RECT_WIDTH), y, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Blue), rect);
                        }
                        if (s.Contains("'M'"))
                        {
                            rect = new Rectangle(x + (2 * RECT_WIDTH), y, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Green), rect);
                        }
                        if (s.Contains("'U'"))
                        {
                            rect = new Rectangle(x + (3 * RECT_WIDTH), y, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Violet), rect);
                        }
                        if (s.Contains("'K'"))
                        {
                            rect = new Rectangle(x + (4 * RECT_WIDTH), y, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Orange), rect);
                        }
                        if (s.Contains("'AB'"))
                        {
                            rect = new Rectangle(x, y + row.Height - RECT_HEIGHT, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Pink), rect);
                        }
                        if (s.Contains("'A'"))
                        {
                            rect = new Rectangle(x + (1 * RECT_WIDTH), y + row.Height - RECT_HEIGHT, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Tan), rect);
                        }
                        if (s.Contains("'BH'"))
                        {
                            rect = new Rectangle(x + (2 * RECT_WIDTH), y + row.Height - RECT_HEIGHT, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Brown), rect);
                        }
                        if (s.Contains("'BS'"))
                        {
                            rect = new Rectangle(x + (3 * RECT_WIDTH), y + row.Height - RECT_HEIGHT, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.Yellow), rect);
                        }
                        if (s.Contains("'S'"))
                        {
                            rect = new Rectangle(x + (4 * RECT_WIDTH), y + row.Height - RECT_HEIGHT, RECT_HEIGHT, RECT_WIDTH);
                            e.Graphics.FillRectangle(new SolidBrush(Color.DarkOrchid), rect);
                        }
                        x += cur_ColumnWidth;
                    }
                }
                y += row.Height;
            }
        }

26.05.2009 - 10:00 Uhr

ne, das komische is ja, dass nur auf einem computer die Datagridview nicht mehr zu blinken aufhört.
Wodurch kann die paint methode noch aufgerufen werden?

26.05.2009 - 09:51 Uhr

Hallo!

ich bin gerade dabei einen urlaubsplaner zu programmieren.
hier kann man über buttons für jeden Mitarbeiter eintragen wann er urlaub hat, wann er in Krankenstand ist etc.
Jedenfalls kann man auch mehrere staten(mehrzahl von status?) pro tag und mitarbeiter eintragen, um dies zu kennzeichnen zeichne ich in der paint methode des Datagridviews färbige quadrate in die Zellen.
Bei den einen Computer(da wo ich auch programmiere), drücke ich z.b auf U für Urlaub. das U wird in die zelle eingetragen, die Datagridview blinkt kurz da sie neu gezeichnet wird und fertig.

Bei einem anderen computer(ist ein laptop fals das wichtig ist?!), hört bei selbigen, der bildschirm oft minuten lang nicht zu blinken auf weil immer wieder die paint methode aufgerufen wird.

Hat irgendwer eine ahnung an was das liegen könnte?

Danke

18.05.2009 - 09:20 Uhr

nein diese spalte ist vom typ datetime und enthält also auc das datum.

hab aber das problem schon gefunden....hatte ganz einen anderen grund. beim starten des programms habe ich beim initialisieren des SqlDataAdapters im sql Command öfters DateTime.Now verwendet um zukünftige urlaube, berufsschule etc die schon eingetragen sind im programm nicht zu berücksichtigen, da ich nur die aktuellen einträge sehen möchte, bei tageswechsel kommt natürlich ein anderer wert bei Datetime.Now heruas, und somit nur die einträge bis gestern angezeigt, so hatte es für mich den anschein als wenn das Programm nicht aktualisiert wurde.
Ich hab jezt einfach ein event gesendet bei Tageswechsel und dan die SqlQueries angepasst und die Tabellen neu geladen....

mfg flo

18.05.2009 - 08:47 Uhr

ok dan poste ich mal den code woch in annehme das das problem liegt

hier ist die Klasse die dass mit dem SQLDependency übernimmt


using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data.Sql;
using SMALib;
using Stempeluhr;

namespace SMALib
{
    class DatabaseChangeAlert
    {
        private String connectionString = "Data Source=sma2-3;Initial Catalog=SMAData;Integrated Security=False;User ID=sa;Password=*****";
        private SqlConnection sc;
        private SqlCommand scmd;
        private SqlConnectionStringBuilder scsb;
        public event EventHandler DatabaseChangeEvent;
        public DatabaseChangeAlert(String conString, String sql)
        {
            SystemMessage.printFile("DatabaseChangeAlert initialisiert", "Databasechangealert", "LOG\\DatabaseChangeAlert.log");

            initDBConnection();
            scmd = new SqlCommand(sql, sc);
        }
        private void initDBConnection()
        {
            MyParameters param = Data.param;
            scsb = new SqlConnectionStringBuilder();
            scsb.DataSource = param.get("DataSource");
            scsb.InitialCatalog = param.get("InitialCatalog");
            scsb.UserID = param.get("UserID");
            scsb.Password = param.get("Password");
            scsb.IntegratedSecurity = false;
            sc = new SqlConnection(scsb.ConnectionString);
        }
        public void start()
        {
            try
            {
                System.Data.SqlClient.SqlDependency.Start(connectionString);
            }
            catch (Exception ex)
            {
                SystemMessage.printFile("1. Exception in DatabaseChangealert\n" + ex.Message, "Databasechangealert", "LOG\\DatabaseChangeAlert.log");
            }

            try
            {
                startDependency();
            }
            catch (Exception ex)
            {
                SystemMessage.printFile("2. Exception in DatabaseChangealert\n"+ex.Message, "Databasechangealert", "LOG\\DatabaseChangeAlert.log");

                //System.Windows.Forms.MessageBox.Show(ex.Message);
            }
        }
        private void startDependency()
        {
            // Assume c is an open SqlConnection.
            sc.Open();
            // Create a new SqlCommand object.
            System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand(scmd.CommandText, sc);
            // Create a dependency and associate it with the SqlCommand..
            System.Data.SqlClient.SqlDependency dep = new System.Data.SqlClient.SqlDependency(cmd);
            // Maintain the refence in a class member.
            // Subconribe to the SqlDependency event.
            dep.OnChange += new System.Data.SqlClient.OnChangeEventHandler(SqlResultChanged);
            // Execute the command.
            cmd.ExecuteReader();
            // Process the DataReader.
            sc.Close();
        }
        private void SqlResultChanged(object sender, EventArgs e)
        {
            DatabaseChangeEvent(this, new EventArgs());
        }
    }
}

die obige klasse wirft ein event wenn sich etwas in der datenbank ändert(sprich ein eintrag geschrieben wird)

das initialisieren der obigen klasse:


            alert = new DatabaseChangeAlert(scsb.ConnectionString, "SELECT zeit FROM dbo.Zeiterfassung_Terminalzeiten");
            alert.DatabaseChangeEvent += new EventHandler(this.databaseChanged);
            alert.start();


und hier die Methode die das event behandelt:


        private void databaseChanged(object sender, EventArgs e)
        {
            reloadTables();
            alert.start();
        }

18.05.2009 - 08:26 Uhr

verwendetes Datenbanksystem: Microsoft SQL Server 2005

Hallo, ich habe ein kleines Programm programmiert zum Stempeln für die Mitarbeiter, da auch der chef ein kleines proggy hat wo er sieht wer gerade in der firma ist, aktualissiere ich die ansichten wenn ein event von SqlDependency kommt. Das funktioniert auch alles ganz gut, nur in der früh ist immer das Problem, dass zwar beim Stempeln ein eintrag in die Datenbank geschrieben wird, allerdings der Screen nicht aktualisiert wird.
Ich bin mir nicht ganz sicher ob es an der Datenbank liegt oder am Programm. aber es wäre für mich logischer fals es an irgendwelchen einstellungen an der datenbank liegt.

hoffentlich könnt ihr mir helfen 😃

mfg Flo