Laden...

Forenbeiträge von Limits Ingesamt 20 Beiträge

24.02.2015 - 22:43 Uhr

Ich will bei einem der o.g Buttons den "Highlight" Rand an ein Bild anpassen, also wenn die Maus über das Element fährt oder wenn der button ausgewählt wird.

Müsste man das in der OnRenderDropDownButtonBackground Methode machen? So kann ich zwar die Farbe ändern aber wie komme ich an die Location des Bildes? e.Item.Image.Location gibt es nicht. Zudem hat das Bild leider abgerundete Ecken, kann ich das auch so zeichnen?

public MyForm()
{
    InitializeComponent();
    toolStrip1.Renderer = new CustomRenderer();
}

private class CustomRenderer : ToolStripProfessionalRenderer
{
   protected override void OnRenderDropDownButtonBackground(ToolStripItemRenderEventArgs e)
    {
        Rectangle bounds = new Rectangle(Point.Empty, e.Item.Image.Size);
        e.Graphics.FillRectangle(Brushes.Red, bounds);
    }
}

Zudem würde ich gerne die Schriftgröße verändern (ImageText), ohne das sich dies auf das DropDownMenu auswirkt, wie kann man das erreichen?

Noch einmal nebenbei: Kann man eigentlich irgendwie prüfen, ob das DropDownmenu eines ToolStripDropDownButton aktviert ist? Ich habe keine Eigenschaft gefunden, die das besagt. Müsste man dafür dann den ToolStripDropDownButton überschreiben?

20.06.2014 - 00:32 Uhr

Sorry, das ich mich erst so spät melde aber ich war auch ein wenig beschäftigt. 😉

Naja, das Managed Directx wird ja laut dem 2 Link. den du mir gegeben hast, nicht mehr weiterentwickelt, von daher schließe ich das schon einmal aus.
Wieso wird eigbentlich in dem Einstieg nicht OpenGL erwähnt?

Was ist jetzt eigentlich dieses CLI oder heißt das irgendwie anders? Zudem hat hier noch jemand eine Buchempfehlung oder so? Ich meinte auch übrigens nicht designen, sondern natürlich Grafikprogrammierung, keine Ahnung, waurm ich da nicht drauf gekommen bist.
Zudem muss man ja auch ein wenig Zeichnerisch begabt sein oder?

Ich würde ja gerne etwas in Tower Defense Richtung mache.

06.06.2014 - 18:25 Uhr

Naja, ich habe mich da glaube ich ein wenig missverständlich ausgedrückt.
Ich meinte eine "Art" Popup-menü, wie bei einer Website, wo so eine Art Pfeil an der Seite ist, wo man drüber fährt und dann vergrößert sich die Form.

Mit Webdesign kenne ich mich sogar schon recht gut aus aber in Sachen Objektorientierung und Desktop Entwicklung eher nicht so aber es wird besser.

06.06.2014 - 18:01 Uhr

Welche Möglichkeiten habe ich, um etwas schnell und auch gut zu designen?
Ich weiß von XNA aber das wird ja nicht mehr weiterentwickelt, zumindest soweit ich weiß aber was kann man sonst nehmen, auch vor allem vielleicht in 2D Richtung.
Sorry, wenn ich das hier so Frage aber ich habe absolut keine Ahnung von sowas.

Beispielsweise zum Beispiel ein Spielfeld, das sich bewegt, Figuren die sich da bewegen oder auch eine Grafik, keine Ahnung.
Ich weiß, man kann auch einfach Elemente aus Windows Forms nehmen aber ist das so ratsam? Wie gesgt, ich habe keine Ahnung.

Ich hätte da auch noch eine spezielle Frage.
Ich will an einer Seite, wie bei einer Website eine Art Popup-Menü machen. Dies allerdings in Windows Forms. In CSS, Javascript wüsste ich wie das geht, aber wie macht man das mit Windows Forms? Gibt es da schon etwas?
Ich habe da an so eine Art Pfeil oder so was gedacht und wenn man darüber fährt, das sich dann die Form oder so in die Richtung ausweitet.

Gibt es da nicht irgendwie CLI oder sowas? Bin mir da absolut nicht sicher.

und was benutzt man in C++ zum designen, zeichnen oder wie man das nennt?

Ich würde natürlich gerne etwas mit Zukunft benutzen, also nicht etwas, was eh bald aufgegeben wird. 😉

24.05.2014 - 21:17 Uhr

Hallo herbivore,

danke schon einmal für die Antwort aber ich dachte das mit dem decompilen ist illegal aber bei kleiner Projekten sollte es da ja keine Probleme geben oder? Der .Net Reflector kostet allerdings was.
Ich habe mir jetzt den jetBrains dotPeek geholt.

Naja, ich bin noch nicht wirklich gut in C# (vielleicht so in Richtung ein wenig besser) und ich bin mir noch nicht sicher, ob ich bei C# bleiben soll, weil C++ ja um einiges schneller ist? Zudem ist C++ ja auch sehr beliebt (schneller und warum auch immer).

Ich würde mir vor allem gerne mal einen guten Passwortgenerator, ein Monopoly Spiel oder Wer wird Millionär und die üblichen kleineren Sachen wie TicTacToe und Vier gewinnt anschauen, hast du da ne Empfehlung?

Ich habe auch im Projekte Forum das Monopoly Spiel gefunden, auch sehr cool aber wie werden da eigentlich diese Felder erstellt? (Ereignisfelder etc.)

23.05.2014 - 21:57 Uhr

Ich suche kleinere oder auch etwas größere Source Projekte, die man sich mal anschauen kann. Sowohl in C++ als auch in C#. Aber wo findet man da vernünftige Sachen mit Sourcecode?
Hier gibt es ja auch einen Projektbereich, allerdings sind die ja alle ohne Quellcode und ich würde mir auch gerne mal ein paar größere Projekte angucken aber auch kleinere.
Wie z.B ein gutes Tower Defense OpenSource Spiel oder dergleichen.

Ich habe auch schon über Google gesucht aber irgendwie finde ich nichts vernünftiges. Die Seiten oder Projekte sollten auch nicht veraltet oder halt sozusagen "ungeprüft" sein.

Kennt da jemand ne gute Seite / Forum oder Sammlung?

16.03.2014 - 17:03 Uhr

Naja, mag sein das dass falsch rübergekommen ist aber ich habe es so gemacht, wie FZelle es gesagt hat, ansonsten hätte ich ja auch immer noch das gleiche Problem.

Ich frage den Benutzer jetzt erst, ob er die Aktion wirklich durchführen will.

Somit: Problem gelöst.

15.03.2014 - 22:30 Uhr

was kann ich denn sonst machen?
Naja, ich erkläre das ganze noch einmal.

Also:
Ich klicke auf einen Button, dann komme ich in meine Klasse, die die Operation ausführen soll, in diesem Fall ist es halt eine Lösch-Operation.
In der Methode, die dann von dem Button aufgerufen wird, wird dann der CommandText gesetzt und die Parameter natürlich auch.
Dann wird die Methode beendet und in der Form wird dann gefragt, ob der Benutzer den Datensatz wirklich löschen will, bestätigt er dies mit Ja, dann wird die Methode aufgerufen aber ich brauche dort ja nun die Paramter ..

Es wird zudem auch in der vorigen Methode überprüft, ob überhaupt ein Datensatz vorhanden ist.

EDIT: Sorry, für die Frage .. ich habe das Problem gelöst.
Ich frage den Benutzer jetzt einfach direkt beim Klick, ob er den Datensatz wirklich löschen will, da hätte ich auch mal eher drauf kommen können -.-

15.03.2014 - 22:03 Uhr

wozu?
in einer meiner Methoden wird der CommandText initialisiert und dem Benutzer soll die Möglichkeit gegeben werden, vor der Ausführung des Befehls, diesen noch zu kenzeln.
Dies wird einfach mit einer MessageBox gemacht aber daher meine Klasse diesen nicht kennt musste ich das ganze spalten.

Ich sehe da keine andere Möglichkeit um ehrlich zu sein.

15.03.2014 - 21:17 Uhr

verwendetes Datenbanksystem: <MySQL> und der MySQLConnector/Net

Hallo,

wie gebe ich die MySQL-Command Paramters an eine andere Methode weiter? Es geht mir dabei vor allem um den Wert, denn wenn ich nur ?ID habe, dann kennt er ja nicht den Wert aber ich will den Wert haben oder diesen zumindest mitübergeben.

13.03.2014 - 14:32 Uhr

Hey,

ich lese mit dem sql-reader die Datensätze aus der Datenbank aber wie kann ich diese an den Aufrufer zurückgeben? Das ganze geschieht in einer Nicht-Form-Klasse und ich will da auch kein Listviewitem benutzen. (Das ganze wird nachher in eine Listview eingesetzt.)

Das sieht derzeit so aus:

ListViewItem data= new ListViewItem(sql_reader["ID"].ToString());
             data.SubItems.Add(sql_reader["Vorname"].ToString());
             data.SubItems.Add(sql_reader["Nachname"].ToString());
listView_Data.Items.Add(dataList);

naja, nun funktioniert das natürlich auch nicht, vor allem aber weil er natürlich die listView_Data nicht kennt aber wie gebe ich alle Einträge zurück?

Muss man dafür eine Liste vom Typ object erstellen und die dann nachher in der form mit foreach durchgehen?


List<object> data= new List<object>();
dataList.Add(sql_reader["ID"].ToString());

usw ..

oder wie macht man das am besten?

06.03.2014 - 14:56 Uhr

Hey,

ich habe eine Klasse erstellt, die größtenteils Datenbankoperationen ausführt, in dieser müssen oder werden aber auch leider die Inhalte der Textboxen usw. überprüft.
Nur wie mache ich das jetzt vor allem sauber, so dass ich auch auf die Text-Eigenschaft der Textboxen zugreifen kann?
Im Internet habe ich leider nichts passendes gefunden, außer dem, das man mit get arbeitet, also so:

Beispiel:
Form-Klasse:

public string firstName
{
    get
    {
        return textBox_FirstName.Text;
    }
}

Nicht-Form-Klasse:

// Instanz der Form-Klasse erstellen:
Form1 myForm = new Form1();

if ((Textbox.firstName == "")
{
    // usw ...
}

Aber ist das so sauber, also das man die Form-Klasse in der Nicht-Form-Klasse instanziert?

Zudem habe ich in der Klasse auch eine Methode, die ein selbst erstelltes Meldung ausgibt, und die auch Zugriff auf eines der Steuerelemente haben müsste, also wie geht man da sauber vor?

Vielleicht suche ich auch nicht mit den richtigen Wörtern ...

21.02.2014 - 21:39 Uhr

Hey, dann muss man aber die Datenbank nicht mit im ConnectionString angeben oder? Ansonsten würde ja auch warscheinlich auch wieder eine Exception auftreten oder?
So sieht das jetzt bei mir aus:

sqlConDatbase.ConnectionString = "SERVER=localhost;" + "UID=root;" +
                                 "PASSWORD=;";
try
{
    sqlConDatbase.Open();
    sqlComDatabae.CommandText = "Select count(*) From information_schema.tables where table_schema = 'telefonbuch'" +
                                "and table_name = 'eintrag'";
    object database = sqlComDatabae.ExecuteScalar();
    sqlConDatbase.Close();
    if(database.== "0")
    {
        // MessageBox.Show("Test");
        if(MessageBox.Show("DB nicht gefunden!\n\nJetzt erstellen?",
                           "DB nicht gefunden!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
        {
            return;
        }
        else
        {
            sqlConDatbase.Open();
            sqlComDatabae.CommandText = @"CREATE DATABASE IF NOT EXISTS Kunde DEFAULT CHARACTER SET 
                                          latin1 COLLATE latin1_swedish_ci;";
            sqlComDatabae.ExecuteNonQuery();

            sqlConDatbase.Close();
    }
}
catch(Exception ex) { MessageBox.Show(ex.ToString()); }

Der Rückgabewert ist ja 0, wenn die DB nicht existiert (und die Tabelle auch) und wenn diese existiert, dann ist er 1 oder liege ich da falsch?

21.02.2014 - 20:07 Uhr

verwendetes Datenbanksystem: <MySQL>
Mit dem MySQL-Connector / Net

Hey,

wie kann ich überprüfen ob eine Datenbank existiert, allerdings soll diese dabei NICHT erstellt werden.

So sieht das ganze bei mir derzeit aus:

sqlConDatbase.ConnectionString = "SERVER=localhost;" + "UID=root;" +
                                  DATABASE=Kunde; + "PASSWORD=;";
sqlComDatabae.Connection = sqlConDatabase;

try
{
    sqlConDatabaseTest.Open();
        
    sqlComDatabase.CommandText = @"CREATE DATABASE IF NOT EXISTS Kunde DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci;";
    sqlComDatabase.ExecuteNonQuery();

catch(Exception ex)
{
    MessageBox.Show(ex.ToString()); 
}
sqlConDatabase.Close();

Edit:

So wäre das dann ja mit der Abfrage, ob die DB erstellt werden soll und ich habe das auch mal mit der "Database" Eigenschaft versucht, also so:

try
{
    sqlConDatabase.Open();
    string database = sqlConDatabase.Database;
    sqlConDatabase.Close();
    MessageBox.Show(database + database.GetType());
    if(database == null || database == "")
    {
        MessageBox.Show("Test");
        if(MessageBox.Show("DB nicht gefunden!n\nMöchten Sie die Datenbank jetzt erstellen?",
                            "Db nicht gefunden!", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
        {
            return;
        }
        else
        {
            sqlConDatabaseTest.Open();
            // CommandText zum Erstellen der Datenbank
            sqlComDatabase.CommandText = @"CREATE DATABASE IF NOT EXISTS Telefonbuch DEFAULT CHARACTER SET 
                                            latin1 COLLATE latin1_swedish_ci;";
            sqlComDatabase.ExecuteNonQuery();
        }
    }
    catch(Exception) { }
    sqlConDatabase.Close();
}

Naja, leider funktioniert das ja nicht, weil da die Database mit angegeben ist aber wie geht man da vor? In die Exception kann man das ja auch nicht mit reinschreiben, weil es ja verschiedene Fehler geben kann, also wie realisert man sowas?
Im Netz finde ich leider auch nichts vernünftiges.

Danke schon einmal im voraus

30.01.2014 - 22:18 Uhr

verwendetes Datenbanksystem: <MySQL>

Hey,

ich bin grade dabei mein Programm gegen SQL-Injections aber eins verstehe ich nicht. Was ist der Unterschied zwischen Add und AddwithValue und was sind die Vor- und Nachteile?
Muss man auch Sachen sichern, wo nur Daten geholt werden, also select statements aber so wie ich das verstanden habe, muss dies überall, wo Variablen verwendet werden oder Eingabefelder oder, also egal ob select, update, insert, delete?

Außerdem hätte ich noch eine Frage zu dem absichern.
Das ganze sieht bei mir derzeit so aus:

MySqlConnection sql_connection = new MySqlConnection();
MySqlCommand sql_command_suche = new MySqlCommand();
MySqlCommand sql_command_loeschen = new MySqlCommand();

string loeschen_id, option_ID;

option_ID = "select * from Eintrag where Eintrag_ID = '" +
                            id + "';";

loeschen_id = "delete from Eintrag where Eintrag_ID = '" + textBox_ID.Text + "';";

sql_connection.ConnectionString = Anmeldung();

Dann wird nachher, wenn eine Option ausgewählt wird, der Commandtext gesetzt:

sql_command_suche.CommandText = option_ID;
sql_command_loeschen.CommandText = loeschen_id;[

sql_command_loeschen.Connection = sql_connection;
sql_command_loeschen.ExecuteNonQuery();

Naja, nur um mal ein Beispiel zu nennen, man hängt doch dann einfach die Parameter mit Add an den Commantext an und danach macht man, wie bei mir:

sql_command_loeschen.CommandText = loeschen_id;
sql_command_suche.Parameters.Add("@id", textBox_ID.Text);

oder muss man das oben an dem String anhängen? Bin deswegen irgendwie ein bisschen verwirrt.

Danke schon einmal im vorraus.

Gruß

03.01.2014 - 13:13 Uhr

ach, ich meinte auch oben nicht die XSL Datei sondern das XML-Schema ... brauch man das XML Schema denn zwingend, um eine Datei in die DB zu laden?
Nachdem ich meinen Datensätze aus der DB exportiere, erhalte ich diese Struktur:

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <Table>
    <Kunde_ID>2</Kunde_ID>
    <Vorname>Horst</Vorname>
    <Nachname>Köhler</Nachname>
    usw....
  </Table>
</NewDataSet>

Das ist doch so richtig oder nicht?

02.01.2014 - 22:27 Uhr

naja, mit Dataset ist das doch viel einfacher oder nicht?
Ich will gesagt nur die Datensätze die in meiner XML-Datei stehen, in meine Tabelle importieren.
Das funktioniert aber leider nicht richtig.

Wenn ich jetzt das Dataset ausgebe, dann steht da nichts drin, das ist mein Problem.

02.01.2014 - 22:10 Uhr

verwendetes Datenbanksystem: <MySQL>

Hey, ich würde gerne eine XML Datei in meine DB einlesen, bzw in eine Tabelle eigentlich nur.
Dafür brauche ich doch keine XSL Datei oder? Habe den export schon fertig.

private void dateiimportierenToolStripMenuItem_Click(object sender, EventArgs e)
{
    DataTable tabelle = new DataTable("Kunde");
    DataSet daten = new DataSet();
    try
    {
        FileStream file_stream = new FileStream(@"C:\Test\Datenbank.xml", FileMode.Open, FileAccess.Read);
        StreamReader stream_reader = new StreamReader(file_stream);
        daten.ReadXml(stream_reader);
    }
    catch (Exception ex)
    {
        MessageBox.Show("Es ist ein Fehler beim lesen aufgetreten!\n\n" + ex.Message, "Fehler!",
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
    }
}

Dann müsste doch im Dataset die Daten der xml datei sein oder?
MySQL Connection aufbauen und das Dataset einfügen und das wäre es dann?

23.12.2013 - 18:44 Uhr

Wie kann ich die Farbe einer jeden Form ändern, wenn ich mehrere Forms habe?
Ich habe dazu eine Form erstellt, in der man dann die Farbe auswählen kann und diese Farbe soll dann jede Form annehmen, wie geht das?
Das gleiche wollte ich auch eigentlich für meine Schriftfarbe, Schrifrgröße und Schriftart machen aber wie realisiere ich sowas?

23.12.2013 - 18:02 Uhr

Hey,

wie kann ich anhand meiner SQL-Tabelle ein echte Tabelle in C# erzeugen? Die Ausgabe etc. in einer Listbox steht schon aber das ganze sieht leider sehr unschön aus, wie kriege ich das in eine schöne Tabelle?
Ich verwende derzeit MySQL zum Test:

Das ganze sieht derzeit so aus:
Ich habe einen Anmeldestring, hier erstelle ich das grundlegende:


MySqlConnection sql_connection = new MySqlConnection();  
MySqlCommand cmd_sql = new MySqlCommand();    
MySqlDataReader sql_reader;

Dann habe ich eine Methode um meine Daten anzuzeigen:

sql_connection.ConnectionString = String;
cmd_sql.Connection = sql_connection;
cmd_sql.CommandText = "select * from Tabelle order by Vorname, Nachname";

sql_connection.Open();                     
sql_reader = cmd_sql.ExecuteReader();    
while (sql_reader.Read())
{
listBox_Eintraege.Items.Add(sql_reader["Vorname"] ); // usw.
                    
}
sql_reader.Close();
sql_connection.Close();
}

Naja, so ungefähr halt, hab ein paar Sachen rausgestrichen. Wie kriege ich das ganze in ne schöne Tabelle? Kann man das irgendwie mit der Listbox verbinden?

Ein Problem habe ich zudem auch noch. Ich habe auch eine Funktion, um Datensätze zu suchen, wie kann ich die zählen und wenn die halt ungleich null sind, einen Fehler raushauen? Ich habe für die Suche einen String erzählt und da dann halt select * from gemacht.