Ich habe 2 Fragen :
1.Ich möchte eine Spalte im DataGrid immer mitscrollen lassen
Was heißt das wenn ich horizontal scrolle die eine Spalte weiterhin sichbar sein soll
2.Wenn ich eine Spalte sortiere und anschlißend editiere wird dann wieder neu sortiert
Dies ist nervig wenn ich noch weitere Änderungen an diesem Buchstaben vornehmen will da ich so immer wieder zu dem Buchstaben zurückscrollen muss
Kann mir mal einer helfen??
Ich habt das doch sicher schon mal gemacht
zu 1)
Ich habe es jetzt mal mit DataGridTableStyle und DataGridTextBoxColumn versucht aber jetzt wird nur noch die Spalte angezeigt dich ich bei DataGridTextBoxColumn angegeben habe.
Ich weiss auch nicht ob das der richtige Weg ist
zu 2) hoffe mal auf eure Hilfe X(
Ich habe schon rausgefuden wie das geht 🙂
Aber es gibt noch 2 Probleme.
Das ist doch voll der Scheiß
Ich habe jetzt in der Klasse db_coding eine Methode gemacht die den Wert in die andere Klasse liefern soll
public String nick_back()
{
Console.WriteLine(start2.User);
String nickname=start2.User;
return nickname;
}
Es wird wieder nix übergeben dabei ist es doch die gleiche instanz
Hä???
Ich habe die doch weiter verwendet 🤔
Abruf:nick_class nick_s=new nick_class();
nick=nick_s.User;
Console.WriteLine("test"+nick);
Übergabe
nick_class start2=new nick_class();
start2.User=n;
Methode
public string User
{
set { this.user = value;}
get { return this.user;}
}
Sag mal genau wo das der Fehler sein soll!!
Also der Wert kommt aus der DB
String n="";
String p="";
try
{
String b="Select nick,pw from user where (nick='"+nick+"')and (pw=MD5('"+pw+"'));";
this.verbinden();
MySQLCommand com = new MySQLCommand(b,this.con);
read=(MySQLDataReader)com.ExecuteReader();
while(read.Read())
{
n=read[0].ToString();
p=read[1].ToString();
}
if(p=="")
{
MessageBox.Show("Userdaten nicht vorhanden");
}
else
{
Menü start=new Menü();
nick_class start2=new nick_class();
start2.User=n; //Übergabe
start.Show();
}
com.ExecuteNonQuery();
com.Dispose();
}
catch(MySQLException MErr)
{
throw new Exception(MErr.Message + " " + MErr.StackTrace);
}
catch(Exception err)
{
throw new Exception(err.Message + " " + err.StackTrace);
}
con.Close();
}
public class nick_class
{
private string user;
public string User
{
set { this.user = value;}
get {
Console.WriteLine("test"+this.user);
return this.user;}
}
}
So habe das gerade mal getestet und es wird immer noch nichts ausgegeben
set { this.user = value;
Console.WriteLine("test"+this.user); //Nick wird Ausgegeben
}
get {
Console.WriteLine("test"+this.user); //Nick wird nicht Ausgegeben sondern nur test
return this.user;}
public class nick_class
{
public String user="";
public void nick_an(String nickname)
{
user=nickname;
}
public String nick_aus()
{
return user;
}
}
Ich lasse mir den Nick aus der MySqlKlasse geben und will den nun bei Aufruf der Methode nick_aus() "ausgeben" lassen
Nur steht in der Methode nick_aus() user leer weil die Zuweisung nicht übernommen wurde
1)Ich habe ein Programm geschrieben bei dem man sich ua. auch einloggen muss
Ich frage mich nun wie es möglich ist den Login Namen in jeder Klasse zu verfügung zu stellen ??
Die mysql Befehle stehen in einer extra Klasse
2)
Weiss einer wie man seinen MySQL Server nach aussen freigeben kann??(XAMPP von appachefriends)
Eine Idee habe ich ja schon
while (y < Anzahl Zeilen){
while (x < Anzahl Splaten){
wort+= gibt wert an position(y, x);
wort += "|";
x++;
}
wort = "";
y++;
x = 0;
}
Aber wie kann man die Zeilen und Spalten auslesen???
Leute bitte jetzt helft mir doch X(
Kann mir keiner helfen??
In der 2.Spalten stehen immer die Namen und die sollen immer sichtbar sein
Und das auslesen??
Man müsste ja die Zellen und Zeilen zählen und die dann durch eine Schleife jagen aber wie soll sowas gehen??
Es muss ja immer ein | hinzugefügt werden 😉
Wie kann ich jetzt die ganze Tabelle wieder auslesen??
Ohne dabei die letzten 5 Spalten mit auszulesen !
Ich will das aber mit Checkboxen machen weil man die per Hand deselectieren kann
Ich verstehe das nicht 🤔
Ich habe 10 Checkboxen auf der einen Seite 5 auf der anderen 5
Beide Seiten widersprechen sich was heißt das auch nur eine Box angeklickt werden darf
Beispiel:
**Du bist **
schlau
gut
dumm
prima
auf der anderen Seite steht
**Du bist nicht **
schlau
gut
dumm
prima
Wie soll ich das machen??
Wenn ich horizontal Scrolle ist es da möglich die erste Spalte immer anzeigen zu lassen also das die nicht mitscrollt ??
Opps da habe ich dicken Klops gemacht
Habe int i=0 mit in die while Schleife geschrieben
Jetzt geht es aber
Das Problem ist nur der Wert (von der letzen Zeile) immer in die erste Zeile gesetzt wird
Der Wert steht auch nur in der ersten Zeile
Ich will das aber in jeder Zeile haben
Ist das nicht möglich???
Gut das klappt erstmal 😁
Nun habe insgesamt 10 Zeilen und 5 Spalten.
Das ganz wird aus einer Textdatei gelesen (Arbeiten mit Dateien )
Nun will ich aber in jeder Zeile in der 6Spalte noch den durchschnitt ausgeben
Wie mache ich das??
EDIT:Noch was wichtiges:
Wenn ich horizontal Scrolle ist es da möglich die erste Spalte immer anzeigen zu lassen also das die nicht mitscrollt
Wie mache ich das ganze mit Hilfe eines Arrays???
String[]name={"a","b","c","d"};
dt.Columns.Add(name);
Das geht leider nicht so X(
28,7MB 8o
Ich glaube ich werde das ganze mal in C++ umschreiben 😁
Ist ja auch ne schöne Übung 👍
Es geht nun alles 😁
Aber nun noch eine Frage 😁
Kann man das .NET Framework (also die benötigten Komponenten) irgendwie im Setup mit einpacken so das der User nix runterladen muss auch das NET nicht instalieren muss??
zumindest ab der Position der Änderung
Wie soll ich das den machen??
Es wäre nett wenn du ein Beispiel geben könntest
In der ListBox stehen aber nur die Namen
Was ich ändern will sind aber auch noch Adresse,Alter,Beruf ..
Deswegen ja auch ein neuer Dialog mit den Textfeldern 😉
Die ID vom Namen wird zB nicht geändert
Es soll ja nur der ausgewählte Name geändert werden
if((id==usr[0])) //Wenn NameID (aus Form2) gleich der ID in der txt
{usr[3]=textBox1.Text; //an Stelle 4 steht der Name
TextWriter stringWriter = new StringWriter();
using(TextWriter streamWriter =
new StreamWriter(pfad2))
{
stringWriter.WriteLine(usr[3]);
stringWriter.Close();
streamWriter.Close();
}
}
So muss das Speichern doch in Lesen rein!?
Nur so wird doch der ausgewählte Namre gändert
Ich lasse den Namen in einem TextFeld anzeigen wo dann der User den Namen ändern kann.
Per klick auf den Button wird die änderung gespeichert
Och kommt jetzt gibt mir noch den letzten Tip X(
Damit ich jetzt zum Ende komme meine Abschlussfrage 🙂
Ich habe es jetzt so gemacht das man auch den Namen eines Einwohners ändern kann.
Also habe ich drei Forms (Ort,Einwohner und Einwohner ändern)
Auf dem Form Einwohner ändern habe ich jetzt ein Button wenn man da drauf klickt soll das ganze dann in name.txt gespeichert werden.
private void button1_Click(object sender, System.EventArgs e)
{
FileStream f;
String line;
String[] usr;
f = new FileStream(pfad2, FileMode.Open); //Den Dateipfad wird aus der ersten Form bezogen
StreamReader r = new StreamReader(f);
while ((line = r.ReadLine()) != null)
{
usr = line.Split('|');
if((id==usr[0])) //Wenn NameID (aus Form2) gleich der ID in der txt
{
usr[3]=textBox1.Text; //an Stelle 4 steht der Name
TextWriter stringWriter = new StringWriter();
using(TextWriter streamWriter =
new StreamWriter(pfad2))
{
stringWriter.WriteLine(usr[3]);
stringWriter.Close();
streamWriter.Close();
}
}
}
f.Close();
r.Close();
}
Das ganze geht nicht da ja noch aus der Datei gelesen wird .
Aber wie soll ich das den sonst machen?
Ok danke es geht 👍 👍
Man selectiert doch ein Item in der ComboBox doch mit
comboBox1.SelectedText="text"; oder??
Das geht nämlich nicht 🤔
Was mich auch wundert ist das kein Ü, Ä oder so vorhanden ist 🙄
Also ich mache erst mal
Hashtable htFilter= new Hashtable();
Dann schreibe ich vor dem
listBox1.Items.Add(usr[1]);
if (!htFilter.Contains (usr[1]))
Aber wie lege ich die zu streichenden Orte fest?
Das war nur ein Beispiel aber egal ich habe das Programm jetzt auf das Beispiel angepast.
Und ich muss mich damit bei euch bedanken 😁
Jetzt geht alles so wie ich es will 👍
Über das Menü wird die Datei geladen
private void menuItem2_Click(object sender, System.EventArgs e)
{
FileStream f;
openFileDialog1.FileName="Ort";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.RestoreDirectory = true ;
String line;
if(openFileDialog1.ShowDialog()== DialogResult.OK)
{
f = new FileStream(openFileDialog1.FileName, FileMode.Open);
r = new StreamReader(f);
while ((line = r.ReadLine()) != null)
{
usr = line.Split('|');
listBox1.Items.AddRange(new object[] {usr[1]});
int auswahl=listBox1.SelectedIndex;
}
r.Close();
pfad=openFileDialog1.FileName;
}
}
Per OK Button wird die ID des Ortes "geholt"
private void button1_Click(object sender, System.EventArgs e)
{
FileStream f;
String line;
String a=listBox1.SelectedItem.ToString();
f = new FileStream(pfad, FileMode.Open);
r = new StreamReader(f);
while ((line = r.ReadLine()) != null)
{
usr = line.Split('|');
if((a==usr[1]))
{
listBox2.Items.AddRange(new object[] {usr[0]});
}
}
f.Close();
EDIT:Eine Frage ich aber noch 🙂
Wie kann ich bestimmte Orte aus der ListBox rausfiltern also das sie nicht mit angezeigt werden?
Habe das ganz nochmal überprüft
Wenn ich das Array usr ausserhalb der while Schleife aufrufe steht da nur die letzte Zeile drin X(
Warum ist mir auch klar aber ich will ja alle Namen in anderen Methode haben 🤔
Es kommt jetzt kein Fehler mehr aber es läuft nicht so wie ich es will
String auswahl2=listBox1.SelectedItem.ToString();
if((auswahl2==usr[4]))
{
listBox2.Items.AddRange(new object[] {usr[4]});
}
Das Problemist das auswahl2 nicht ==usr[4] weil die Werte aus der Menü-Methode nicht übernommen werden
Wie bekomme ich das den hin??
Die Fehlermeldung ist:
Eine nicht behandelte Ausnahme des Typs 'System.NullReferenceException' ist in WindowsApplication2.exe aufgetreten.
private void button1_Click(object sender, System.EventArgs e)
{
Form2 test=new Form2();
test.ShowDialog();
String auswahl2=listBox1.SelectedItem.ToString();
if((auswahl2==usr[4]))
{
listBox2.Items.AddRange(new object[] {usr[4]});
}
}
War ein kleiner Denkfehler mit dem SelectedItem X(
Das ist das Problem:
Nur leider gibt es da Probleme mit dem auswahl2==listBox1.SelectedItem.ToString();
**Das kann man wohl nur in der public void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) Methode machen **
Aber ich kann die Werte der Varibalen nicht von einer Methode in die andere übernehmen
Ich lade die Orte aus der der Datei DYN_team
listBox1.Items.AddRange(new object[] {usr[4]});
Werden alle im Array an 4.Stelle stehen daten in die listbox gelesen
Das sind die Namen der Orte
Nun wählt der User den Ort aus und klickt auf ein OK Button
Es öffnet sich ein neues Fenster wo alle Einwohner der ausgewälten Ortes stehen
Dazu habe ich gedacht von dem ausgewählten Ort die ID die auszulesen
String auswahl2==listBox1.SelectedItem.ToString();
if(auswahl2==usr[4])
{
listBox2.Items.AddRange(new object[] {usr[1]});
}
Im String auswahl2 soll der Name des ausgewählten Ortes steht
Wenn dieser gleich eines Ortsnamen aus der Texdatei ist dann soll erstmal zum Test die OrtsID in einer 2.Listbox ausgegeben werden
Ich habe die frage schon in einem anderen Forum gestellt doch da bekomme ich keine Antwort deswegen frage ich hier nochmal
Ich habe folgendes Problem:
Zwei Datein in der einen Stehen (orte.txt) die Orte mit ID
1|Berlin
2|Köln
3|Duisburg
usw
In der anderen (name.txt) stehen Namen und auch die ID der Orte
NameID|Name|OrtID
1|Fritz Meier|1
2|Fritz_Meier|3
3|Fritz-Meier|2
Ich will nun wenn das Programm startet alle Orte in einer Liste angezeigt werden
Was soweit auch kein Problem ist nur wenn ich jetzt auf ein Ort klicke soll sich eine weitere Liste öffen in der alle IDs und Namen aus name.txt von dem ausgewählten Ort stehen
Das war soweit geklärt
Aber ich habe immer noch ein Problem
Ich lade über ein MenüItem die Datei
public void menuItem2_Click(object sender, System.EventArgs e)
{
FileStream f;
StreamReader r;
openFileDialog1.FileName="DYN_team";
openFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" ;
openFileDialog1.RestoreDirectory = true ;
String line;
if(openFileDialog1.ShowDialog()== DialogResult.OK)
{
f = new FileStream(openFileDialog1.FileName, FileMode.Open);
r = new StreamReader(f);
while ((line = r.ReadLine()) != null)
{
usr = line.Split('|');
//if (usr[5] == "1")
//{
listBox1.Items.AddRange(new object[] {usr[4]});
int auswahl=listBox1.SelectedIndex;
String auswahl2==listBox1.SelectedItem.ToString();
if((auswahl2==usr[4]))
{
listBox2.Items.AddRange(new object[] {usr[1]});
}
//}
}
r.Close();
}
}
Ich habe zum Testen nun eine 2.ListBox gemacht in der dann die ID des Ortes ausgegeben wird von dem ausgewählten Ort
Nur leider gibt es da Probleme mit dem auswahl2==listBox1.SelectedItem.ToString();
Das kann man wohl nur in der public void listBox1_SelectedIndexChanged(object sender, System.EventArgs e) Methode machen
Aber ich kann die Werte der Varibalen nicht von einer Methode in die andere übernehmen
Ich komme da einfach nicht weiter