Autor Beitrag
Aaronh
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 22.01.09 10:07 
Hallo ihr,

da ich das erste mal hier bin vielleicht erst mal etwas zu mir.
Ich heisse Sven, bin 21 alt und komme aus dem Raum Warendorf.

Ich bin gerade dabei mir Kenntnisse in C# anzueignen, leider habe ich bisher keine Fortschritte machen können da ich einfach nicht "stur" aus Büchern lernen kann.
Mir fehlt einfach die Fähigkeit mich über 2 Sätze trockene Theorie hinaus zu konzentrieren :(

Um irgendetwas zu verinnerlichen muss ich einfach etwas versuchen, was weit über meine Kenntnisse hinausgeht um dann dort wo es hackt eine Frage zu stellen.
Da ich c# gerade erst angefangen habe, sind die meisten der aufkommenden Fragen wahrscheinlich weit unter eurem Niveau.

Ich setzte mich durchaus nicht hin "Löcher" euch mit fragen und lass mir im Endeffekt von euch den Programmcode zusammenschustern. Nur grade am Anfang treten Fragen halt häufiger auf.
Ich habe bisher nur Erfahrung mit PHP, HTML und CSS.
Sollte es euch in irgendeiner Weise stören wenn ich hier möglicherweise dumme Anfängerfragen stelle, einfach etwas sagen und dann akzeptiere ich das auch und mach mich wieder von dannen :)
So, ich denke das war genug zu mir, ich werd einfach mal meine Frage stellen.


Ich habe mir mit VisualStudio eine WindowsFormsAnwendung "zusammengeklickt"
Darin habe ich mir nun ein paar Textboxen und einen button erstellt
Der Code sieht so aus:


ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox3_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox4_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox5_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox6_TextChanged(object sender, EventArgs e)
        {

        }

        private void textBox7_TextChanged(object sender, EventArgs e)
        {

        }

        private void eintragen_Click(object sender, EventArgs e)
        {

        }

    }
}


Ich würde gerne wissen wie ich die Eingaben in die Textboxen mit dem Button übernehme um sie dann zB irgendwo einzutragen.

Konkret möchte ich darauf hinaus später einen User im Active Directoy anzulegen.

Ich hoffe ihr versteht was ich meine.

also, schonmal Danke und mfg
Sven

Moderiert von user profile iconUGrohne: Beitragsformatierung überarbeitet.
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4809
Erhaltene Danke: 1061

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Do 22.01.09 11:59 
Hallo Sven,

du solltest beim "Programmieren lernen" natürlich nicht nur die Bücher lesen, sondern immer auch versuchen die Beispiele selber zum Laufen zu kriegen (um sie und evtl. Fehlermeldungen etc. besser zu verstehen). Ein gutes Online-Buch findest du unter www.galileocomputing...nbook/visual_csharp/

Aber zu deinem konkreten Problem:
wenn du erst bei Benutzung des Buttons auf die Textboxen zugreifen willst, dann einfach im Button-Click-Ereignis lesend auf die Textbox(en) zugreifen:
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
private void eintragen_Click(object sender, EventArgs e)  
{  
   string text1 = textBox1.Text;
   string text2 = textBox2.Text;

   //etc.
}

Das Ereignis TextBox.TextChanged brauchst du nur, wenn du direkt auf Änderungen während des Editierens reagieren willst.

Zum Anlegen eines Users im ActiveDirectory kann ich dir leider nicht weiterhelfen.
Aaronh Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 05.02.09 08:59 
Huhu,

heute habe ich mal wieder ein wenig Zeit :)

Danke erst mal für die nette und Hilfreiche antwort.

Ich habe mal ein wenig gegooglet und bin nun so weit:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormsApplication1
{




    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

        }

    public static DirectoryEntry GetDirectoryEntry()
        {
            DirectoryEntry de = new DirectoryEntry();
            de.Path = LDAP://192.168.1.1/CN=Users;DC=Yourdomain;
            de.Username = @"yourdomain\sampleuser";
            de.Password = "samplepassword";
            return de;
        }

        private void name(object sender, EventArgs e)
        {

        }

        private void vorname(object sender, EventArgs e)
        {

        }

        private void gebdate(object sender, EventArgs e)
        {

        }

        private void amschrift(object sender, EventArgs e)
        {

        }

        private void mobnr(object sender, EventArgs e)
        {

        }

        private void persnr(object sender, EventArgs e)
        {

        }

        private void email(object sender, EventArgs e)
        {

        }

        

        private void eintragen_Click(object sender, EventArgs e)
        {
            string name = name.Text;
            string vorname = name.Text;
            string gebdate = gebdate.Text;
            string anschrift = anschrift.Text;
            string mobnr = mobnr.Text;
            string persnr = persnr.Text;
            string email = email.Text;


            public void CreateNewUser(string employeeID, string name, string login, string email, string group)
                        {
                        Catalog catalog = new Catalog();
                        DirectoryEntry de = ADHelper.GetDirectoryEntry();
                        /// 1. Create user account
                        DirectoryEntries users = de.Children;
                        DirectoryEntry newuser = users.Add("CN=" + login, "user");
                        /// 2. Set properties
                        SetProperty(newuser,"employeeID", employeeID);
                        SetProperty(newuser,"givenname", name);
                        SetProperty(newuser,"SAMAccountName", login);
                        SetProperty(newuser,"userPrincipalName", login);
                        SetProperty(newuser,"mail", email);
                        newuser.CommitChanges();
                        /// 3. Set password
                        SetPassword(newuser.Path);
                        newuser.CommitChanges();
                        /// 4. Enable account
                        EnableAccount(newuser);
                        /// 5. Add user account to groups
                        AddUserToGroup(de,newuser,group);
                        /// 6. Create a mailbox in Microsoft Exchange
                        GenerateMailBox(login);
                        newuser.Close();
                        de.Close();
                        }

        } 

 


    }
}


ich weiß nicht ob das im Aufbau soweit iO ist, wenn nicht, schreit einfach :)

Erm, ich frag mich nu: man kann/muss doch irgendwie Bibliotheken einbinden, wie zB. using System.Linq;
using System.Text;

Wie finde ich den raus welche ich brauche für das LDAP zeug?

Danke & mfg
Sven
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Do 05.02.09 09:50 
Hallo Sven,

user profile iconAaronh hat folgendes geschrieben Zum zitierten Posting springen:
ich weiß nicht ob das im Aufbau soweit iO ist, wenn nicht, schreit einfach :)

Da muss ich wirklich schreien - das sieht sehr schrecklich aus. Du darfst wirklich nicht einfach googeln, sondern musst konsequent Schritt für Schritt lernen. Beispielsweise hast Du offensichtlich noch nichts vom Unterschied zwischen internen Variablen, deren Bezeichner und Deklaration sowie von Methoden und Ereignissen gelernt.

Beispiel:
ausblenden C#-Quelltext
1:
2:
3:
4:
        private void name(object sender, EventArgs e)
        {

        }

"name" sieht aus wie eine lokale (private) Variable der Klasse (d.h. des Formulars), ist aber nicht etwa (wie man bei einem Namen erwarten würde) als string deklariert, sondern als void. Das wäre dann die Deklaration einer Methode; durch die Argument-Liste sieht es wie die Deklaration eines (einfachen) EventHandlers aus; man erkennt aber überhaupt nicht wofür. In der Event-Methode eintragen_Click (aha, das ist der Name eines Click-EventHandlers, wie jeder sehen kann) sieht "name" dann wie der Name einer TextBox aus. Was gilt denn nun?

Außerdem musst Du Dir über den Geltungsbereich von Variablen Gedanken machen. In eintragen_Click hast Du name zusätzlich als lokale string-Variable dieser Methode deklariert.

Dieses Vermischen macht klar, dass Du viele elementare Dinge noch nicht verstanden hast. Bitte fang wirklich am Anfang an, wie schon gesagt wurde:
user profile iconTh69 hat folgendes geschrieben Zum zitierten Posting springen:
du solltest beim "Programmieren lernen" natürlich nicht nur die Bücher lesen, sondern immer auch versuchen die Beispiele selber zum Laufen zu kriegen (um sie und evtl. Fehlermeldungen etc. besser zu verstehen). Ein gutes Online-Buch findest du unter www.galileocomputing...nbook/visual_csharp/


user profile iconAaronh hat folgendes geschrieben Zum zitierten Posting springen:
Erm, ich frag mich nu: man kann/muss doch irgendwie Bibliotheken einbinden, wie zB. using System.Linq;
using System.Text;

Wie finde ich den raus welche ich brauche für das LDAP zeug?

Das Wort "zeug" zeugt von Geringschätzung. Das ist keine gute Einstellung.

Mit using gibst Du nur ein Kürzel (alias) für einen Namespace (Namensraum) an. Grundsätzlich ist es möglich, dass verschiedene Klassen dieses Namespace aus verschiedenen Assemblies (DLLs, Bibliotheken) stammen. Es ist deshalb sicherer, nach einer speziellen Klasse zu schauen.

Beispiel zu "System.Text". Gehe in die SDK-Doku/MSDN im Index zu System.Text-Namespace. Wähle eine der Klassen aus, die Du benutzen willst, z.B. ASCIIEncoding. Auf der Einstiegsseite stehen oben Namespace und Assembly; die Assembly muss per Referenz eingebunden werden.

Es ist auch sehr gut möglich, dass using-Direktiven, die der Designer automatisch eingefügt hat, gar nicht benötigt werden. Dazu gibt es einen Menü-Befehl zum "Aufräumen". Aber wenn sie drinstehen, stört das auch nicht wirklich.

Gruß Jürgen