Laden...

Forenbeiträge von northdrive Ingesamt 43 Beiträge

25.11.2008 - 11:11 Uhr

Vielen Dank Spooky,

Das führt auf jeden Fall in die richtige Richtung. Ich bekomme eine InvalidDeploymentException, aber um die kann man sich dann ja kümmern 🙂

nochmals besten Dank

Christian

25.11.2008 - 10:33 Uhr

Hallo,

ich habe das folgende Problem, zudem ich durch eine Suche keine richtige Antwort finden konnte.
Die von mir betreute Anwendung wird durch ClickOnce veröffentlicht. Eine neue Anforderung ist es nun die VersionsNummer von ClickOnce in der Mainform anzuzeigen.

Welche Möglichkeit habe ich die Versionsnummer zur Laufzeit zu ermitteln??

ich bin für jeden Link oder Tipp dankbar 😉

Christian

21.10.2008 - 12:08 Uhr

Danke für die Antwort,

tja sieht leider wirklich so aus:-(

nun gut man kann nicht ales haben.

Christian

21.10.2008 - 09:18 Uhr

Hallo Bernd,

ich verwende ein Typisiertes Dataset.
Das Dataset habe ich erzeugt, indem ich die Tabellen aus dem Serverexplorer per Drag and Drop eingefügt habe.
Bisher war das ändern von Spalten innerhalb der einzelnen Tabellen auch noch nie ein Problem.
Wenn ich im Datatable auf die Eigenschaften der Column gehe, dann zeigt mir das Studio an, das der String eine maximale Länge von 250 Zeichen hat.

Gruß

Christian

21.10.2008 - 08:17 Uhr

Hallo,

in der Suche habe ich nichts passendes gefunden, falls dies nur auf meiner eigenen Blindheit beruht, schicke mir bitte jemand zur Erleuchtung einen Link.

ich verwende Visual Studio 2005 Pro mit dem Sql Server 2005.

Ich habe grade folgendes Problem mit einem DataSet:

Es hat sich im nachinein bei der Zeichenlänge einiger Textfelder herausgestellt, das selbige nicht hinreichend groß gewählt worden ist. Die Länge der Textfelder habe ich auf dem SqlServer angepaßt [von nvarchar(250) auf nvarchar(max)].

Die ConnectionStrings im DataSet verweisen alle auf die richtige Datenquelle, aber die Änderung der Zeichenfolge kann ich über (Table oder Tableadapter ) konfigurieren nicht übernehmen. Habe die Spalten schon komplett abgehängt und wieder eingehängt???

Wo liegt mein Fehler ??

Der Compiler hat ja doch wieder einfach nur recht 😉

vielen Dank

Christian

22.09.2008 - 13:58 Uhr

Hallo,

ich habe zurzeit das die Felder zum wechseln zwischen Debug und Release disabled sind. Dies trifft jedoch nur auf einige Projekte zu.

In der Suche habe ich die Antwort nicht gefunden.

Ich wäre wirklich froh, wenn jemand meine Nase in die richtige Richtung stoßen könnte.

vielen Dank

north

28.02.2008 - 08:01 Uhr

Hallo,

ich hoffe, das richtige Forum getroffen zu haben. Bei mir stellt sich folgendes Problem. Ich arbeite z.Zt. an einem Projekt, dass aus einer ganzen Reihe an Teilprojekten besteht.
Im Rahmen dieses Projektes gibt es nun einige globale benutzerspezifische Einstellungen. Ich habe versucht das ganze mit den Settingsdateien zu implementieren, diese sind jedoch jeweils nur in einem einzelnen Teilprojekt sichtbar.
Kann mir jemand einen guten Weg empfehlen wie man UserSettings global für eine ganze Projektmappe sichtbar machen kann??? Gibt es dafür schon ein Pattern ??

vieln Dank

Northdrive

20.09.2007 - 13:15 Uhr

Hallo Leute,

mich würd mal interessieren, was für Mäuse ihr so benutzt. Bei uns auf der Arbeit gibt es diese kleinen Logitech Standardmäuse. Finde ich eigentlich gar nicht so schlecht, aber habe in letzter Zeit immer mehr Probleme mit meiner Maushand.
Versuche es deswegen jetzt erst einmal mit der Logitech Marble Mouse.
Bis jetzt scheint das für die Hand besser zu sein, auch wenn ich mit dem Arbeiten erst einmal langsamer bin.

NorthDrive

03.05.2007 - 10:15 Uhr

Hallo,

ich habe ein Problem, dass gut in diesen Kontext passt, deswegen erweitere ich den Thread mal etwas.
Ich habe das Problem, dass ich Dateien ohne eine Endung mit einem bestimmten Programm öffnen muss. folgendes funktioniert leider nicht:



Process.Start(@"C:\Programme\programs\fileviewer.exe", filename);


Wie kann ich eine Datei ohne Default Programm öffnen ?
Ich wär auch schon glücklich wenn mit Windows den "Öffnen mit" Dialog anzeigen würde.

north

17.04.2007 - 08:46 Uhr

Hallo,

wir haben hier ein Projekt, bei dem wir auf Basis des SQL2005 Reporting Services Ausdrucke erstellen müssen. Es gibt bereits einen alten Ausdruck, dessen formaler Aufbau aufgrund von :

a) guter Struktur
b) extrem gute User Akzeptanz

beibehalten werden soll. Dieser Ausdruck stellt uns vor das Problem, das wir im Prinzip eine Transponiertes TabellenReportelement brauchen, das die Rows als Columns von links nach rechts, und die Columns von oben nach unten darstellt.

Weiß jemand ob es so ein Element schon irgendwo fertig gibt ??
Alternativ, wie kompliziert ist es so ein Element selbst zu bauen, und gibt es irgendwo eine gute Anleitung wie man solche Elemente erstellen kann ??

vielen Dank

northdrive

28.03.2007 - 08:06 Uhr

Habe den Fehler gefunden,

das DataBinding hatte den DataSourceUpdateMode auf OnPropertyChanged stehen. ...

northdrive

27.03.2007 - 13:48 Uhr

Hallo,

Ich brauche sehr oft ein TextFeld mit einer danebenliegenden CheckBox, um das ganze nicht jedesmal neu erstellen zu können habe ich mir das ganze in ein Usercontrol gepackt und die TextBox und die CheckBox als public declariert.
Soweit alles so gut. Ich habe Databindings auf dem Element liegen.


myCTB.TextBox.DataBindings.Add("Text", CurrentElement.Subelement[0], "value", false, DataSourceUpdateMode.OnPropertyChanged);

Das Binding geht direkt auf die Texteigenschaft der in dem Control liegenden TextBox. Aber wenn ich eine Zahl mit Kommastelle eingeben will, dann springt der Cursor beim Eingeben des Kommas direkt auf die erste Stelle in der TextBox ??? also aus 65,3 wird 365 mann kann auch 0,.. eingeben ??? Hat irgendwer Ideen ?

Ach ja, hier der Code :



 public partial class CheckedTextBox : UserControl
    {

        private void HandleCheckedChanged()
        {
            if (Checker.Checked)
                this.TextBox.ReadOnly = false;
            else
                this.TextBox.ReadOnly = true;
        }
        

        public CheckedTextBox()
        {
            InitializeComponent();
            InitControl();
        }
        

        private void InitControl()
        {           
            this.Checker.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);
            this.checkBox1_CheckedChanged(this, EventArgs.Empty);
        }


        void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            HandleCheckedChanged();
        }
        

        protected override void OnSizeChanged(EventArgs e)
        {
            base.OnSizeChanged(e);            
            this.Height = 20;
            this.TextBox.Width = this.Width - this.Checker.Width;
        }
    }


vielen Dank Northdrive

15.02.2007 - 11:07 Uhr

<wegduck>

Das Datagrid hängt an einer Bindingsource, aber wie leite ich diese Information durch ??

</wegduck>

Danke north

15.02.2007 - 10:56 Uhr

Die Klasse Datenzugriff


public class Datenzugriff
    {
        Mydataset ds;

        public Mydataset DS
        {
            get { return ds; }
        }

        public Datenzugriff(bool xml)
        {
            if (!xml)
            {
                ds = new LagerDataSet();
                FillfromDB();
            }
            else
            {
                if (File.Exists(Application.StartupPath + @"\" + Properties.Settings.Default.dataset))
                    FillfromXML(Application.StartupPath + @"\" + Properties.Settings.Default.dataset);
            }   
        }

        public void FillfromXML(string file)
        {
            if (String.IsNullOrEmpty(file))
                return;

            
            if (File.Exists(file))
            {
                XmlSerializer ser = new XmlSerializer(typeof(Mydataset ));
                FileStream fs = new FileStream(file, FileMode.Open);

                ds = (Mydataset )ser.Deserialize(fs);
                fs.Close();
            }
            else
            {
                string zw = ShowOpenfile();
                FillfromXML(zw);
            }
        }
        
        private void FillfromDB()
        {
            new Mydataset TableAdapters.Table1TableAdapter().Fill(ds.Table1);
           
        }
        
        public void SaveXML(string file)
        {
            XmlSerializer ser0 = new XmlSerializer(typeof(Mydataset ));
            FileStream fs = new FileStream(file, FileMode.Create);
            ser0.Serialize(fs, ds);
            fs.Close();
        }


        public string ShowOpenfile()
        {
            OpenFileDialog diag = new OpenFileDialog();
            
            
            DialogResult a = diag.ShowDialog();

            if (a == DialogResult.OK)
                return diag.FileName;
            else
                return string.Empty;
        }

    }

und die Form, in der die Daten dargestellt werden sollen


Datenzugriff datenzugriff;
        public Form1()
        {
            InitializeComponent();
            Init();
        }


        private void Init()
        {
            datenzugriff = new Datenzugriff(true);
                      

        }

        private void datenLadenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            datenzugriff.FillfromXML(Application.StartupPath + @"\" + Properties.Settings.Default.dataset);
            
        }

        private void ladenVonToolStripMenuItem_Click(object sender, EventArgs e)
        {
            string zw = datenzugriff.ShowOpenfile();
            datenzugriff.FillfromXML(zw);

        
        }

        private void datenSichernToolStripMenuItem_Click(object sender, EventArgs e)
        {
            datenzugriff.SaveXML(Application.StartupPath + @"\" + Properties.Settings.Default.dataset);
        }

        private void speichernUnterToolStripMenuItem_Click(object sender, EventArgs e)
        {
            SaveFileDialog fd = new SaveFileDialog();

           
            DialogResult a = fd.ShowDialog();

            if (a == DialogResult.OK)
            {
                datenzugriff.SaveXML(fd.FileName);
            }
        }

        private void beendenToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

     

        


        


    }

Ich weiß das die Struktur so nicht ganz sauber ist zb.: ShowOpenFile im Datenzugriff aber es soll ja auch nur ein schneller Wurf sein . Also bitte nicht zu sehr zerrupfen 🙂

Danke north

Edit oder vergesse ich grad einfach den Grids mitzuteilen, dass sie eine neue source haben ???

15.02.2007 - 10:41 Uhr

hallo,

Ich habe ein Problem mit Databindings, das mein (sehr geringes) Verständnis übersteigt.
Ich möchte ein Dataset nicht aus der DB sondern von XML laden. Das mit dem Deserialiseren klappt auch wunderbar, wie ich beim debugen sehe, aber das Datagrid zeigt die Daten aus dem Dataset nicht an ??

woran kann das liegen ??

vielen Dank Christian

01.02.2007 - 14:05 Uhr

Mein erster versuch sieht folgender massen aus :



 public static string EncryptString(string message,string key, string vektor)
        {
            DESCryptoServiceProvider prov = new DESCryptoServiceProvider();
            prov.Key = TransformStringToByteArray(key);
            prov.IV = TransformStringToByteArray(vektor);

            byte[] buffer = TransformStringToByteArray(message);

            MemoryStream stream = new MemoryStream(1024);

            CryptoStream cstream = new CryptoStream(stream, prov.CreateEncryptor(), CryptoStreamMode.Write);

            cstream.Write(buffer, 0, buffer.Length);

            string test = TransformByteArrayToString(stream.GetBuffer());

            cstream.Close();
            stream.Close();
            
            return test;
        }

dabei habe ich aber das Problem, dass anscheinend nichts in den Memorystream geschrieben wird. ?? 🤔

Kann mir vielleicht jemand sagen wieso?

northdrive

01.02.2007 - 13:42 Uhr

Hallo Borg,

Ich habe es zuerst mit MemoryStream versucht, aber das habe ich nicht hinbekommen. Wenn du ein einfaches Beispiel hast gerne 🙂.

Meine Eigentliche Frage ist immer noch, warum beim Rücklesen die Länge der verschlüsselten Daten nicht mehr stimmt.

vielen Dank

northdrive

01.02.2007 - 11:49 Uhr

Hallo,

Ich habe eine Klasse geschrieben um einzelne Strings ver - und entschlüsseln zu können.

Das Verschlüsseln der Strings klappt auch soweit, aber das beim Entschlüsseln bekomme ich die Fehlermeldung :
"Die Länge der zu entschlüsselnden Daten ist ungültig."
vom Cryptostream ??

Hat jemand eine Idee wieso ich die Fehlermeldung bekomme ??

Ach ja, ich gebe in eine TextBox einen Text ein, Schicke diesen an EncryptString, schreibe das Ergebnis in ein Label und gehe mit diesem wieder in die DecryptString Methode.


class CryptoString
{

private string file = @"c:\Temp\a";
DESCryptoServiceProvider des;
CryptoStream decrypter;
CryptoStream encrypter;


Encoding enc;

public CryptoString(string scrmbldKey,string scrmbldVektor)
{
enc = System.Text.Encoding.ASCII;
des = new DESCryptoServiceProvider();
des.Key = TransformStringToByteArray(scrmbldKey);
des.IV = TransformStringToByteArray(scrmbldVektor);

}


public string EncryptString(string eingabe)
{
// Schreiben des krypts in File
FileStream a = new FileStream(file, FileMode.OpenOrCreate, FileAccess.Write);

encrypter = new CryptoStream(a, des.CreateEncryptor(), CryptoStreamMode.Write);

byte[] zw = TransformStringToByteArray(eingabe);
encrypter.Write(zw, 0, zw.Length);
encrypter.Close();
a.Close();

// Aus File lesen und als string ausgeben
a = new FileStream(file, FileMode.Open, FileAccess.Read);

StreamReader reader = new StreamReader(a);

string dsd = reader.ReadToEnd();

reader.Close();
a.Close();
File.Delete(file);

return dsd;
}

public string DecryptString(string eingabe)
{

// eingabe auf Platte schreiben
File.WriteAllText(file, eingabe);

Stream a = new FileStream(file, FileMode.Open, FileAccess.Read);


decrypter = new CryptoStream(a, des.CreateDecryptor(), CryptoStreamMode.Read);

StreamReader reader = new StreamReader(decrypter);

string rueck = reader.ReadToEnd();
reader.Close();
decrypter.Close();
a.Close();

return rueck;
}



/// <summary>
/// Transforms the byte array to string.
/// </summary>
/// <param name="eingabe">The eingabe.</param>
private string TransformByteArrayToString(byte[] eingabe)
{
return enc.GetString(eingabe);
}

/// <summary>
/// Transforms the string to byte array.
/// </summary>
/// <param name="eingabe">The eingabe.</param>
private byte[] TransformStringToByteArray(string eingabe)
{
return enc.GetBytes(eingabe);
}

}

EDIT

Natürlich Danke im Voraus

north

23.01.2007 - 14:09 Uhr

Mmh

das ganze geht leider nicht ohne das OnPaint() zu überschreiben. 🙁 Aber wir haben dankbarerweise eine externe Komponente im Haus, die die passende Eigenschaft besitzt. =)

northdrive

23.01.2007 - 11:23 Uhr

Hallo Herbivore,

nein ForeColor ist es nicht, damit wird die Farbe der Texte von den, in der GroupBox liegenden Labels geändert, aber nicht der Rahmen 🤔

northdrive

23.01.2007 - 11:12 Uhr

Hallo,

Die BS hat mir leider keine Lösungen offenbart.

Ich habe eine GroupBox, die auf einem schönen blauen Panel liegt. der Rahmen der GroupBox wird jedoch in einem ganz leichtem hellgrau angezeigt. Der Rahmen soll jedoch in schwarz angezeigt werden X(

Auf welche Eigenschaft muss ich dafür gehen 🤔

vielen Dank northdrive

19.12.2006 - 14:04 Uhr

Bin zwar auch kein erfahrener Programmierer,

aber ich hätte schon Lust mich an dem Projekt zu beteiligen 🙂.

northdrive

@dragi : viel Glück mit deinem neuen Job

03.11.2006 - 12:43 Uhr

Habe die Lösung schon gefunden.

Hatte bei Endprint fast alles Disposed und wollte dann nochmal daraufzugreifen.

03.11.2006 - 10:34 Uhr

Hallo,

Ich habe ein Problem beim Ausdrucken des Inhalts einer TexBox. Falls ich im falschen Forum gelandet bin verschiebt den Eintrag bitte in das richtige.

Ich habe mir gestern Abend einen WebCast zum Thema drucken runtergeladen und angesehen. Jetzt versuche ich den Inhalt einer TextBox zu drucken, der praktisch immer länger als eine Seite ist.

Ich lasse den Inhalt in einem PrintPreviewDialog anzeigen. Das funktioniert soweit auch gut. Wenn ich dann aber in dem Dialog auf Print gehe, schmeißt es mir zur Laufzeit beim erstellen von newSizeF eine Argument Exeption mit der Angabe, dass ein Parameter ungültig ist. Der (Das??) Font und der String sind jedoch vorhanden und richtig initialisiert ??

Ist einem von euch klar, was ich falsch mache ??



     void printDocument_PrintPage(object sender, PrintPageEventArgs e)
        {
            RectangleF rectangle = new RectangleF(e.MarginBounds.Left, e.MarginBounds.Top, e.MarginBounds.Width, e.MarginBounds.Height);

            if (_printsize == SizeF.Empty)
            {
                string zeile = string.Empty;

                foreach (string z in displayTexBox.Lines)
                {
                    if (z != "")
                    {
                        zeile = z;
                        break;
                    }
                }
                              
                SizeF newSizeF = e.Graphics.MeasureString(zeile, _printFont);

                _printsize = newSizeF;
            }
            

            linesperPage = (int)((double)e.MarginBounds.Height / _printsize.Height);

            pages = displayTexBox.Lines.Length / linesperPage;


            currentzeile = 0;
            for (int i =currentzeile ; i < linesperPage - 1; i++)
            {
                string z =displayTexBox.Lines[i+(linesperPage*(currentPage-1))];
                
                rectangle.Width = e.Graphics.MeasureString(z, _printFont).Width;
                e.Graphics.DrawString(z, _printFont, Brushes.Black, rectangle);
                rectangle.Y += _printsize.Height;
                currentzeile++; ;
            }

            currentPage++;
            e.HasMorePages = (currentPage <= pages);

        }





vielen Dank

northdrive

19.10.2006 - 07:26 Uhr

Vielen Dank herbivore 🙂 !

Da hätte ich wirklich von selbst drauf stoßen können.

northdrive

18.10.2006 - 11:52 Uhr

?(Hallo,

Ich habe von der TextBox ein UserControl abgeleitet, dass die Validierung von Zahlenwerten, Umrechnung von Einheiten.... zur Verfügung stellt.
Das Control soll nun noch um eine boolsche Eigenschaft aktiv erweitert werden. Diese Eigenschaft soll steuern
a) ob die NumericBox enabled ist
b) Steuerung von Berechnungsabläufen ( Eingabe <>interne Berechnung)

Da sich auf der Oberfläche der Anwendung schon sehr viele Controls befinden möchte ich gerne das der Benutzer mit der rechten Maustaste auf die Box geht und dann mit dieser -wenn irgend möglich im normalen Kontextmenü- umschalten kann, ob die Box aktiviert ist.

Die Umsetzung der Funktionen ist alles kein Problem. Aber ich habe leider nicht die geringste Ahnung, wie ich mich in das Kontextmenü einhängen kann 😦 .

Hat da jemand einent Tipp oder auch einfach nur die richtige Stelle zum Nachlesen ??

besten Dank

north

21.07.2006 - 09:08 Uhr

Ich habe ein Datagridview über eine Bindingsource an ein Dataset gebunden.
Da ich verhältnismäßig viele Daten in der Tabelle stehen habe benutze ich BindingSource.Filter um die Daten zu strukturieren.
In einer Spalte filtere ich nach Werten vom Typ double. Bei Zahlen, wenn ich nach Zahlen filtere, die eine nachkommastelle enthalten bekomme ich eine allgemeine Fehlermeldung über falsche Syntax ??

wkzbindingsource.Filter = "wkz_wert1 =" + comboBox1.Text;

hat von euch einer durchschaut welchen Fehler der Mensch vor meinem PC macht ??

vielen Dank

northdrive

17.07.2006 - 08:32 Uhr

Danke Rainbird,

das wars! Ganz schön "beep... beep" von mir 🙂.

northdrive

14.07.2006 - 08:36 Uhr

Guten Morgen,

Ich schreibe Rechenergebnisse nach Excel. Das eignet sich sehr gut, da hier alle eigentlich ganz gut mit Excel klarkommen, und es auch jeder hat 🙂 .
Das schreiben der Ergebnisse funktioniert sehr gut. Mein Problem liegt beim schützen eines Arbeitsblattes. Die Funktion will einfach nicht. vielleicht hat einer von euch einen Tip ??
Die Funktion wird zwar durchlaufen, führt jedoch nicht zu dem gewünschten Ergebnis.

        public void ProtextWorksheet (Microsoft.Office.Interop.Excel.Worksheet ws)
{

  ws.Protect("Pasword",
               false, false, false, false, false,
               false, false, false, false, false,
               false, false, false, false, false
               );

}

Das Arbeitsblatt ist am Ende aber nicht geschützt. Sieht einer von euch den Fehler, oder die Stelle an die ich nicht denke ??

vielen Dank

northdrive

24.06.2006 - 15:17 Uhr

seufz,

Danke herbivore. wäre ja mal zu toll gewesen wenn so etwas auf anhieb geklappt hätte 🙂);

northdrive

24.06.2006 - 14:54 Uhr

Hallo,

ich glaube hier ist meine Frage am besten aufgehoben. Bevor ihr zu Ende gelesen habt ducke ich mich schon mal und bring mich in Sicherheit 🙂 😦 .
Ich habe mir bei Microsoft die Windows Symbol Packages heruntergeladen. Alle Symbole sind aber in pdb files gepackt. Ist zwar etwas peinlich, aber wie komme ich jetzt an die Symbole ??? Ist zwar saublöd, aber kann mir das jemand bitt mal erklären??

danke northdrive

20.06.2006 - 09:57 Uhr

Hallo,

Entschuldigt die etwas blöde Frage, aber im Moment finde ich einfach die Lösung nicht.
Ich setze in meiner Anwendung eine Textbox ereignisabhängig auf enabled. Falls ein Wert in die Textbox eingetragen wurde ist dieser dann für den Moment hinfällig. Es kommt aber schon mal vor, das man diesen frühen Schätzwert später doch nochmal braucht. Darum will ich das an das Enabled Ereignis der TextBox
um davon abhängig den Text einfach passend einzufärben, aber wo kann man die Methode überschreiben oder ist dies generell nicht sinnvoll ??

besten dank

northdrive

18.05.2006 - 13:32 Uhr

Die Daten werden zt. über ein Dataset und zt. über eine Klasse zur Datenhaltung verwaltet. Die Steuerelement haben mit der Datenspeicherung nichts zu tun 🙂

northdrive

17.05.2006 - 16:01 Uhr

Mmh ihr habt wohl recht,
Da werde ich halt die Anwender überzeugen müssen, das wir doch ein anderes als dad durch ein altes DOS Programm! bereits akzeptiertes Layout einsetzten sollten.

mal schaun ..

besten Dank

northdrive

16.05.2006 - 11:42 Uhr

Die Groupboxen stellen Eingabedaten dar, und hängen logisch zusammen. Einige der Benutzer sollen alles ändern können, andere Benutzer nur weniges bis nichts.

Darum soll es zwei Ansichten geben. Eine Ansicht vom Typ simpel und eine Ansicht vom Typ Advanced. Mein erster Antritt ist das zusammenstellen aller Daten in einem Usercontrol ( Das Programm muss alle kennen), und das nur bedingte Sichtbarmachen der Felder.

Ich bin in der Welt der Oberflächenprogrammierung noch neu. Ich hätte eigentlich nicht gedacht, dass es auf einem Modernen Rechner eine vlt 3/4 Sekunde dauert bis sich alle Elemente richtig aufgebaut haben. Ist das bei bis zu 340 Controls in einem Formular normal ?? oder mache ich wahrscheinlich einen Fehler beim aktivieren der Controls??

besten Dank northdrive

16.05.2006 - 09:30 Uhr

Hallo,

Ich habe zur Dateneingabe ein Usercontrol erstellt. Dieses Usercontrol enthält mehrere Groupboxen, in denen die Informationen sinngemäß zusammengefasst werden. Insgesamt hat das UserControl 56 Controls. Und zeige davon je nach Bedarf 1 bis 6 Stück in einer Form an.
Nicht alle Benutzer brauchen jedoch alle Daten, darum habe ich eine der Groupboxen auf visible = false gesetzt und verschiebe die darunter liegende Groupbox in Abhängigkeit von der Sichtbarkeit der oberen Groupbox nach oben oder unten.
Das funktioniert auch, führt jedoch zu einem Performance Problem beim Anzeigen. Beim Ein- und Ausblenden der Controls werden die TextBoxen... nicht direkt sauber eingeblendet, sondern erscheinen erst nur halb, oder verschwinden zu spät vollständig. Die Reihenfolge für die einzelnen Aktionen im Quellcode ist jedoch richtig gesetz.

Gibt es eine Methode mit der sich dieses Problem sicher unterbinden läßt??

danke northdrive

18.04.2006 - 10:16 Uhr

hallo herbivore,

auch wenn ich versuche, das von dir erstellte Ereignis mit der Texbox zu implementieren, bekomme ich Fehlermeldungen :

Das System beschwert sich, dass es keine Definitionen für load, AutoscaleDimensions...
erhält.

Ich habe hier ein paar eigentlich nicht schlechte Bücher stehen, aber die Erstellung von Steuerelementen ist in diesen wirklich nicht wundervoll dargestellt...

Kannst du mir bitte erklären was ich falsch mache ?? oder was ich noch implementieren muss ??

danke northdrive

18.04.2006 - 09:45 Uhr

hallo herbivore,

mein Problem ist : ich weiß nicht genau wie ich das tun soll, kannst du mir eine (online) Literaturstelle empfehlen wo das für "peep" beschrieben ist ?

danke

northdrive

18.04.2006 - 09:38 Uhr

Hallo,

ich finde mal wieder die Bäume nicht im Wald ...

Ich möchte mir eine Textbox bauen, die nur Integerwerte annimmt, und die über einen Wertebereich verfügt.
Hierzu habe ich eine neue Steuerelementebibliothek in VS2005 angewählt. Aber danach verliert sich der Erfolg in meinem Unwissen ??
Ich gebe der Textbox einen Errorprovider um eine Fehleingabe direkt abzufangen. Ich möchte bei jedem Textbox.leave Ereignis die Prüfung starten.
Wahrscheinlich mache ich hier ein paar haarsträubende Fehler aber ich habe mit der Suche nichts wirklich hilfreiches gefunden 😦

ich bin sowohl für direkte Hinweise, als auch für einen Link, der auf eine gutverständliche Quelle verweist dankbar.

so hier der Code :


{
    public partial class IntBox1 : System.Windows.Forms.TextBox
    {
        private System.Windows.Forms.ErrorProvider fehler = new System.Windows.Forms.ErrorProvider();
        private System.ComponentModel.CancelEventArgs exit = new System.ComponentModel.CancelEventArgs();
        int? minWert = null;
        int? maxWert = null;
        int testwert;
        string ausgabe;


        [Browsable(true)]
        [Category("Grenzen")]
        [Description("Legt den Minimalwert für die Integerbox fest")]
        public int? MinWert
        {
            set 
            {
                this.minWert = value;
            }
            get
            {
                return this.minWert;
            }
        }
        
        [Browsable(true)]
        [Category("Grenzen")]
        [Description("Legt den  Maximalwert für die Integerbox fest")]
        public int? MaxWert
        {
            set
            {
                this.maxWert = value;
            }
            get
            {
                return this.maxWert;
            }

        }


        private void Pruefung(object sender, EventHandler e)
        {
            
            try
            {
                testwert = Convert.ToInt32(this.Text);
            }
            catch
            {
                fehler.SetError(this, "Dies ist kein Integerwert");
                exit.Cancel = true;
                return;
            }

            if (testwert < minWert)
            { 
                ausgabe="Bitte geben Sie einen Wert größer als " +Convert.ToString(MinWert)+ " ein!";
                fehler.SetError(this, ausgabe);
                exit.Cancel = true;
                return;
            }

            if (testwert > maxWert)
            {
                ausgabe = "Bitte geben Sie einen Wert größer als " + Convert.ToString(maxWert) + " ein!";
                fehler.SetError(this, ausgabe);
                exit.Cancel = true;
                return;
            }

            fehler.SetError(this, string.Empty);
            exit.Cancel = false;
            return;

        }



        public IntBox1()
        {
            InitializeComponent();
            this.TextChanged += new EventHandler(
        }

        private void IntBox1_Load(object sender, EventArgs e)
        {

        }








    }

}
17.03.2006 - 13:47 Uhr

Danke für die Antworten !!

Ich habe es über string.toupper gelöst. Da die Zeichenfolgen zumindestens in ihrer Form gut formatiert sind also immer

Bezeichner : wert1.....wertn

geht das gut den Bezeichner zu extrahieren und weiter zu verarbeiten.

besten Dank

northdrive

17.03.2006 - 12:10 Uhr

Hallo,

Bedingt durch einen Fehler in meinem Programmablauf habe ich festgestellt, das die Methode string.contains() sensitiv für Groß und Kleinschreibung ist.
Ich will aus Protokollen die Zeilen auslesen, die für mich interessant sind. Leider wurden die Zeilen was die Sensitivität angeht nach Lust und Laune benamst.

Im Moment habe ich da ein ordentliches Brett vorm Kopf. Wie lässt sich das einfach und effizient umgehen?

vielen Dank

northdrive

03.03.2006 - 13:50 Uhr

Das Problem ist je nach Wertgruppe kann so ziemlich jeder positive und negative Wert vorkommen. Deswegen ja auch der Ansatz null zuzuweisen. ich habe bis jetzt folgendes versucht

 struct meindouble
    {
        //Variablendeklarationen Anfang
        private double wert ;
        private Boolean test;
        //Variablendeklarationen Ende

        public double setValue
        {
            set 
            {
                wert = value;
                test = true;
            }

      
        }
        public double getValue
        {
            get ...
   
        }
 
        public bool hasValue
        {
            get 
            {
              return test
            }
            
        }


    }

Das funktioniert gut, ich muss dann immer wieder neu instanzieren...

03.03.2006 - 13:20 Uhr

Hallo,

ich bin relativ neu in C# und schreibe ein Programm zur Auswertung von Messwerten. Die Werte bekomme ich aus einer csv-Datei.
Es kann vorkommen, dass nicht alle Werte in jedem Datensatz gegeben sind (und zwar recht oft). In C# 2.0 hat man die Möglichkeit über System.Nullable auch int oder double mit dem Wert null zu belegen.
In der .Net1.1 Umgebung ist diese Möglichkeit jedoch nicht vorhanden. ?( Was wäre eurer Meinung nach das günstigste Vorgehen um eine hasValue Eigenschaft für int und double zu implementieren. Ich denke da an ein struct, das hat aber den Nachteil, das ich das Teil jedes mal neu instanzieren muss. Gibt es da einen eleganteren Weg? 🤔
Wenn ich weiß welche Werte vorhanden sind und welche nicht ist die weitere Behandlung kein Problem mehr.

vielen Dank

northdrive