ah sorry falsch kopiert 😉 ... so ->
namespace WindowsFormsApplication1
{
public partial class FormTS : Form
{
public FormTS()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void buttonEntertainment_Click(object sender, EventArgs e)
{
FormEntertainment entertainment = new FormEntertainment();
entertainment.Show();
}
}
}
VIELEn dank für dein SUPER hilfe
läuft einwandfrei , nochmal danke Khalid =)
Jetzt hat deine MainForm das Interface IMainWindow implementiert. Der Compiler sagt dir allerdings bescheid, wenn das Interface falsch oder unvollständig implementiert wurde, der ist so nett smile
und genau das ist das Problem:
implementiert den Schnittstellenmember "IMainWindow.set_loggedout()" nicht. "Hauptmenue.set_loggedout()" ist statisch, nicht öffentlich oder hat den falschen Rückgabewert.
und ich habe das identisch gelöst, wie du ,... er haut meldung übrigens im DESIGNER raus.
GRUND gerade gefunden:
ich hatte die Methode mit internal deklariert -> geht nicht , MUSS public sein -.-#
versuch mal ganz einfach das ->
namespace WindowsFormsApplication1
{
public partial class FormTS : Form
{
public FormTS()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void buttonEntertainment_Click(object sender, EventArgs e)
{
FormEntertainment entertainment = new FormEntertainment();
FormEntertainment.Show();
}
}
}
private void buttonEntertainment_Click(object sender, EventArgs e)
{
if (entertainment.IsDisposed)
entertainment = new FormEntertainment();
FormEntertainment.Show();
}
du solltest auch die variable mit .show aufrufen und nicht das das Form ->
private void buttonEntertainment_Click(object sender, EventArgs e)
{
if (entertainment.IsDisposed)
entertainment = new FormEntertainment();
entertainment .Show();
}
fast ganz verstanden, nur ....
private IMainWindow m_MainWindow;
public AndereForm(IMainWindow mainWindow)
{
this.m_MainWindow = mainWindow;
}
habe kein Object von IMainWindow, is ja das Interface. Muss ich auch implementieren, nur wie ? habe davon 0 ahnung...
MfG dex
Guten morgen,
ich wärme mal wieder ein bsetimmt 100 mal angesprochenes Problem auf, aber die Hilfe unter [FAQ] Kommunikation von 2 Forms hilft nicht wirklich weiter.
es geht um folgendes:
Habe ein Form, welches mit als Hauptmenu dient
in diesem Form gibt es einen Button der bei Click ein 2. Form ausführt, das so ausschaut
nun soll auf "Abmelden" buttons , label und textfelder andere eigenschaften , z.B: "Enabled = false" u.a. gesetzt werden.
Der Lösungsansatz von mir und meinem Kollegen sieht wie folgt aus....
inklusive der tollen Fehlermeldung 🤔
@herbivore
danke für deine berichtigung, war wie oben gesagt nur eine vermutung, da ich mein ide getest habe und es das erhoffte ergibnis lieferte,ging ich davon aus, dass das richtig war.
@ANSI_code
sorry für die unannehmlichkeiten
ich schreibe mir manchmnal einen müll zusammen 🤔 .... danke für die info ... problem wie gesagt gelöst, damit kann das hier [ZU]
das regex prüft dein wort nach "hallomenschaff" ab, da das eingegebene wort hallomenschaffe diesen teil enthält, liefert das regex true zurück !
danke , das war ganau das^^.... was is den der unterschied bei den beiden der unterschied?! .... linklaabel benötige ich nicht
das "^." sagt das ein bbilibiges zeichen vor dem hallo stehen kann , also auch nichts .... beduetet ja nich, das ein zeichen davor stehen muss...
falls ich mich irre bitte berichtigen...
ps.
@ ansi: www.regexlib.com <- sehr hilfreich zum testen und finden von regex
hallo cumminity,
ich habe einge label in meinem formular, die mir mit einem bild als button dienen.
Dies klappt ganz wie gewollt. Nun möchte ich ,dass sich der Cursor bei dem eintreten(enter) in das label in eine Hand verwandelt und beim Verlassen(Leave) wieder zurück. Code zu diesem Event:
private void lock_menu_Enter(object sender, EventArgs e)
{
this.Cursor = Cursors.Hand;
}
private void log_in_Enter(object sender, EventArgs e)
{
this.Cursor = Cursors.Default;
}
das probelm ist, das das enter event nicht ausgeführt wird obwohl es richtig initalisiert wurde... ->
//
// log_in
//
this.log_in.Image = global:Test.Properties.Resources.Key;
this.log_in.Location = new System.Drawing.Point(101, 365);
this.log_in.Name = "log_in";
this.log_in.Size = new System.Drawing.Size(48, 46);
this.log_in.TabIndex = 10;
this.log_in.Enter += new System.EventHandler(this.log_in_Enter);
this.log_in.Click += new System.EventHandler(this.log_in_Click);
this.log_in.Leave += new System.EventHandler(this.log_in_Leave);
warum wird das event nicht ausgeführt... auch wenn keine fehlermeldung kommt ?
Mfg Dex
zu doof zum richtig suchen :
Application.Exit();
danke an mich selber 👍
mahlzeit zsammen,
ich habe mir heute eine kleine MessageBox gebastelt die wie folgt aussieht :
siehe Anhang
nun möchte ich ,dass beim click auf "Beenden" nicht nur die Box sondern auch das dahinterliegende Form geschlossen wird.
ich hbae in dem Formular eine kleine internal Methode geschrieben die ein einfaches close einthält ->
internal void close_form()
{
this.Close();
}
diese Methode sol beim click ausgeführt werden....
klar passiert nichts, wenn ich sie wie folgt instanziere
Form myForm = new Form();
myForm.close_form();
einen bessere idee hatte ich bislang nicht.
Gibt es vielleicht einen vorhanden Beitrag den ich bei meiner suche zum Thema übersehen habe?
Mfg Dex
danke feadur,
wie gesagt war nu spekuliert^^.... aber fast richtig =)
wie sieht denn die API lösung im c# code aus ?
wäre euch / dir sehr verbunden wenn eine Code-Lösung gepostet wird, danke !
[edit]
kleiner hinweis:
der Pfad , den du mit dem oberen Befehl ausrufst sähe im moment folgendermaßen aus :"C:\WINDOWS\system32\rundll32.exe user32.dll,LockWorkStation"
sollte der befehl nicht eher so aussehen:
System.Diagnostics.Process.Start(@"C:\WINDOWS\system32\rundll32.exe", user32.dll,LockWorkStation);
! REINE VERMUTUNG !
kannst du den toolstrip auch per code erstelle, denn aus erfahrung weiß ich , dass dich gui erstellte dinge nicht gut mit selbst geschriebenem vertragen !
dann nimm statt "Top" --> "Bottom" .. wie schon vorher gesagt:
kannst natürlich auch ne andere seite nehmen , frei nach schnauze
es gehen alle seiten des Forms ("Top","Bottom","Left","Right")!
ich würde ja gerne mit den "wirklichen daten" arbeiten.....
Und es muss doch möglich sein, beides korrekt zu verwenden. Jürgen
tjaja , nur wie ?
nur ne idee:
setz den Toolstrip z.B. mit der eigenschaft ".Dock = Top" an den oberen rahmen und danach dein DockStyle.Fill . kannst natürlich auhc ne andere seite nehmen , frei nach schnauze ^^
Mfg Dex
ps. Codebeispiel:
Toolstrip1.Dock = Top;
Panel1.Dockstyle.Fill;
[edit]
Herb war schneller =(
[/edit]
ich fühl mich iwie von diesem datagridview verarscht =/ !
ich hatte mich so gefreut, dass die geschichte mit dem update funktioniert, dass ich mich heute voller tatendrang an den insert into machn wollte .... tja nach 10 minuten war ende im gelände! Das Problem :
Ich kann NICHT auf einen Wert , den ich neu in die "Neue hinzugefügte Spalte" schreibe , zugreifen. Drer Catch liefert mir die schöne Fehlermeldung " Der Objektverweis wurde nicht.... usw."
Ich spiele langsam mit dem gedanken mit eine listview zu arbeiten, damit hätte ich diese probleme alle nicht -.-
sollte ich das wirklich tun / mit was würdet ihr das an meiner stelle realisieren ?
Mfg Dex
hatte ich drinnen, wenn ich meine tabpage wechsle und wieder zurück gehe spingt er raus ( " Connection must be valid an open" ) wenn ich so mache wie jjetzt ,dann gehts -.-
da hat sich ein kleiner fehler eingeschlichen . schlussendlich der code:
private void button5_Click(object sender, EventArgs e)
{
try
{
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
updatecmd = new MySqlCommand("update t_Abteilungen set Abteilungsleiter_bez = ?Abteilungsleiter_bez , geaendertam = ?geaendertam , geaendertvon = ?geaendertvon where Abteilungen = ?Abteilungen ");
updatecmd.Parameters.Add("?Abteilungsleiter_bez", dataGridView1.Rows[i].Cells[1].Value.ToString());
updatecmd.Parameters.Add("?Abteilungen", dataGridView1.Rows[i].Cells[0].Value.ToString());
updatecmd.Parameters.Add("?geaendertam", tools.get_datum());
updatecmd.Parameters.Add("?geaendertvon", tools.get_user());
da_abteilungen.UpdateCommand = updatecmd;
da_abteilungen.UpdateCommand.Connection = con;
try
{
da_abteilungen.UpdateCommand.ExecuteNonQuery();
da_abteilungen.UpdateCommand.Connection.Close();
}
catch (Exception x)
{
MessageBox.Show("" + x);
}
da_abteilungen.UpdateCommand.Connection.Open();
}
MessageBox.Show("Abteilungen erfolgreich bearbeitet !");
}
catch (Exception f) { MessageBox.Show("Speichern nicht möglich: " + f); }
}
[edit]
tippfehler 😉
[/edit]
es geht, ich glaub nicht =0 es geht:
da_abteilungen.UpdateCommand.Connection = con;
da_abteilungen.UpdateCommand.Connection.Open();
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
updatecmd = new MySqlCommand("update t_Abteilungen set Abteilungsleiter_bez = ?Abteilungsleiter_bez , geaendertam = ?geaendertam , geaendertvon = ?geaendertvon where Abteilungen = ?Abteilungen ");
updatecmd.Parameters.Add("?Abteilungsleiter_bez", dataGridView1.Rows[i].Cells[1].Value.ToString());
updatecmd.Parameters.Add("?Abteilungen", dataGridView1.Rows[i].Cells[0].Value.ToString());
updatecmd.Parameters.Add("?geaendertam", tools.get_datum());
updatecmd.Parameters.Add("?geaendertvon", tools.get_user());
da_abteilungen.UpdateCommand = updatecmd;
try
{
da_abteilungen.UpdateCommand.ExecuteNonQuery();
}
catch (Exception x)
{
MessageBox.Show("" + x);
}
}
da_abteilungen.UpdateCommand.Connection.Close();
MessageBox.Show("Abteilungen erfolgreich bearbeitet !");
top leistung Jack, vielen dank für die hilfe !!!!!
geht, da es mit der gui erstellt wurde,... muss wohl eine nicht gesetzte eingenschaft sein
habe hier mal ein kleines programm erstellt, veilleicht genau das, was du brauchst ?! teste es einfach mal =)
so nach einer bastelei ( ist ja eh balt ostern ^^ ) hab ihc un dashier gebaut:
for (int i = 0; i < dataGridView1.Rows.Count - 1; i++)
{
updatecmd = new MySqlCommand("update t_Abteilungen set Abteilungsleiter = @Abteilungsleiter , geaendertam = @geaendertam , geaendertvon = @geaendertvon where Abteilungen = @Abteilungen ");
updatecmd.Parameters.Add("@Abteilungsleiter", dataGridView1.Rows[i].Cells[1].Value.ToString());
updatecmd.Parameters.Add("@Abteilungen", dataGridView1.Rows[i].Cells[0].Value.ToString());
updatecmd.Parameters.Add("@geaendertam", tools.get_datum());
updatecmd.Parameters.Add("@geaendertvon", tools.get_user());
da_abteilungen.UpdateCommand = updatecmd;
da_abteilungen.UpdateCommand.Connection = con;
try
{
da_abteilungen.UpdateCommand.ExecuteNonQuery();
}
catch (Exception x)
{
MessageBox.Show("" + x);
}
}
MessageBox.Show("Abteilungen erfolgreich bearbeitet !");
intereassant ist, dass es ohne problem funktioniert( keine f-meldung) aber die daten trotzdem nicht updatet =/
wäre zwar yyyy/mm/dd , das auch versucht
du kannst auch einfach .show() nehmen, dann müsste auch . colse ohne problem gehn... werd nachher mal schaun , wegen dem dialog !
ich habe so das dumpfe gefühl er mag dein datum nicht, bzw das format. versuch doch mal ein anderes ?!
hast du fehlermeldung rauskopiert ? denn hinter dem -> '.2008'. at Sys.... ist ein . der da glaub ich nicht hingehört ?!
ok , isses doch nich, danke trotzdem =)
MfG Dex
sitzen hier zu 3. im raume: 2 mann (ich und mamphis) arbeiten auf win 2000 und nr 3 auf xp.... dort haben wir schnell mal ein testprojekt erstellt, mit einem datagridview und diesem die mysql db zu grunde gelegt.... dann einfach mal etwas eingetippt und siehe da es geht.... -.-# ... aber warum das bei mamphis nich geht is mir immernoch ein rätsel ! 🤔
nen geht nich um deinen hass ^^
bestimmt gehen beide möglichkeiten "irgendwie" ... nur welche ist sinnvoller und vorallem schneller einzubinden ....
hallo beren
könntest du mir ein gefallen tun und mal ein screenshot von deinem problem machn... habe so das gefühl, dass du du etwas ähnliches machen willst wie ich es noch vorhabe.
wäre dir sehr dankbar !
Mfg Dex
hat sie, nur habe ich halt das problem, dass sich beim update nicht alle felder updaten sollen , sondern nur die felder ( die der benutzer sieht ) und die "geaendertam" und "geaendertvon" felder ....
ich glaube ,dass ich dann am besten den 1. weg wähle ... dann muss ich aber wieder mit juetho verhassten " Datagridview.Rows[].Cells[].Vlaue " arbeiten.
sprechender textboxname werter herr kollege =P
was wäre deiner meinung nach sinnvoller?!
muss ich , wenn ich ich mit diesem command die gesamte tabelle updazten willen jeden einzelnen wert holen, speichern und dann per parameter in den sql einbinden, oder wie läuft das ?
mahlzeit jack30lena, juetho
erstmal danke für eure posts !
werde mich nu gleich an die verbesserung der von euch beschrieben probleme machen!
zu den '?' werde ich mich auch gleich schlau machen, dazu jedoch eine frage :
wenn ich meine geschichte auf einer acces db anwenden möchte, dann ist es kein '?' sonder ein '@' oder?
MfG dex
heute sind ich und mein kollege ab 9 auf der cebit =)
warscheinlich in der wcg oder sonst wo ( sehr präzise ich weiß ^^ ) zu finden.
wir werden gegen 10 mal beim linux forum vorbeischaun , vielleicht steht da ja wer von euch.
leider habenw ir keine mycsharp shirts, somit auch kein hutes erkennungszeichen.
MfG
Dex
guten morgen erstmal 🙂
mein jetziger stand :
MySqlCommand command = new MySqlCommand();
command = new MySqlCommand("insert into t_Abteilungen (Abteilungen,Abteilungsleiter, geaendertam,geaendertvon,erfasstam,erfasstvon) values (?,?, ?geaendertam,?geaendertvon,?erfasstam,?erfasstvon)");
command.Parameters.Add("?geaendertam", tools.get_datum());
command.Parameters.Add("?geaendertvon", tools.get_user());
command.Parameters.Add("?erfasstam", tools.get_datum());
command.Parameters.Add("?erfasstvon", tools.get_user());
da_abteilungen.InsertCommand = command;
command = new MySqlCommand("update t_Benutzergruppe_Berechtigung set Abteilungsleiter = ? , geaendertam = ?geaendertam , geaendertvon = ?geaendertvon where Abteilungen = ? ");
command.Parameters.Add("?geaendertam", tools.get_datum());
command.Parameters.Add("?geaendertvon", tools.get_user());
da_abteilungen.UpdateCommand = command;
MySqlCommandBuilder lv_abt_update = new MySqlCommandBuilder(da_abteilungen);
da_abteilungen.InsertCommand.Connection = con;
da_abteilungen.UpdateCommand.Connection = con;
==>da_abteilungen.InsertCommand.ExecuteNonQuery();
da_abteilungen.UpdateCommand.ExecuteNonQuery();
MessageBox.Show("Abteilungen erfolgreich bearbeitet !")
doch leider kommt "hier" (siehe code ) immernoch folgende fehlermeldung, die mir bisher völlig unbekannt war :
"Der Index, basierend auf 0 (null), muss größer als oder gleich Null sein, und kleiner als die Größe der Argumentenliste."
weshalb kommt diese meldung, hat sie jemand schonmal gehabt / gelöst ?
MfG
Dex
habs schon ersetzt, .... kann nur jetzt kein code posten da ich @ home bin und das program ncih mitgenommen hab
der ie 7 hat ja auch schon als GANZ NEUES feature die tab steuerung angepriesen was z.b. bei firefox seit ewigkeiten ( im vergleich) gibt ! das is also normal..... und egal wie viel die da noch einbauen und von anderen programmen kopieren, ich beleib beim füxlein !
ok das connectionproblem is damit gelöst... aber das ganze is noch nich fertig =( ... eine mit genzlichn unbekkannte fehlermeldung :
"Der Index, basierend auf 0 (null), muss größer als oder gleich Null sein, und kleiner als die Größe der Argumentenliste."
das is heute nicht mein tag =(
ja, der er auch überall sonst z.b. beim laden beutzt wird, ich hba eher die ermutung, dass ich diesem updatecommand noch die connection übergeben muss, was ich bis jetzt nicht habe und auhc nich weiß wo ...