Hallo,
wenn ich mein Programm starte, dann kommt folgende Fehlermeldung (siehe Anhang).
Die Dll:
wenn ich mein Programm starte, dann kommt folgende Fehlermeldung (siehe Anhang).
Code:
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
//using vektoren;
namespace Programm{
public class SteuerelementeForm : System.Windows.Forms.Form
{
[DllImport("vektoren.dll")]
extern static void vektoradditionMenu_Click(object sender, EventArgs e);
[DllImport("vektoren.dll")]
extern static void spitzeberechnenMenu_Click(object sender, EventArgs e);
[DllImport("vektoren.dll")]
extern static void mittelp(object sender, EventArgs e);
private MainMenu mainMenu;
private MenuItem vektoradditionMenu, vektoren;
private MenuItem spitzeberechnenMenu, mittelpunkt_Menu;
private MenuItem beendenMenu, gleichungen;
private MenuItem helpMenu, ungleichungen, gleichungen2;
public SteuerelementeForm()
{
Name = "VektorForm";
Text = "Mathe v2.0"; //Titel Text
Font = new Font("Arial", 9F, (FontStyle.Bold), GraphicsUnit.Point, ((System.Byte)(0))); //Schriftart
FormBorderStyle = FormBorderStyle.FixedDialog;
Location = new Point(0,0);
Size = new Size(500,300);
Komponenten();
}
private void Komponenten() // Menü initialisieren
{
mainMenu = new MainMenu();
vektoren = new MenuItem();
vektoradditionMenu = new MenuItem();
spitzeberechnenMenu = new MenuItem();
gleichungen2 = new MenuItem();
ungleichungen = new MenuItem();
gleichungen = new MenuItem();
beendenMenu = new MenuItem();
helpMenu = new MenuItem();
mittelpunkt_Menu = new MenuItem();
vektoren.Index = 0;
vektoren.Text = "Vektoren";
gleichungen.Index = 1;
gleichungen.Text = "Gleichungen";
gleichungen2.Index = 0;
gleichungen2.Text = "Gleichungen";
ungleichungen.Index = 1;
ungleichungen.Text = "Ungleichungen";
mittelpunkt_Menu.Index = 2;
mittelpunkt_Menu.Text = "Mittelpunkt";
mittelpunkt_Menu.Click += new EventHandler(mittelp);
helpMenu.Index = 3;
helpMenu.Text = "?";
helpMenu.Click += new EventHandler(help_click);
beendenMenu.Index = 2;
beendenMenu.Text = "Beenden";
beendenMenu.Click += new EventHandler(beendenMenu_Click);
spitzeberechnenMenu.Index = 1;
spitzeberechnenMenu.Text = "Punkt berechnen";
spitzeberechnenMenu.Click += new EventHandler(spitzeberechnenMenu_Click);
vektoradditionMenu.Index = 0;
vektoradditionMenu.Text = "Vektoraddition";
vektoradditionMenu.Click += new EventHandler(vektoradditionMenu_Click);
mainMenu.MenuItems.Add(vektoren);
vektoren.MenuItems.Add(vektoradditionMenu);
vektoren.MenuItems.Add(spitzeberechnenMenu);
vektoren.MenuItems.Add(mittelpunkt_Menu);
mainMenu.MenuItems.Add(gleichungen);
gleichungen.MenuItems.Add(gleichungen2);
gleichungen.MenuItems.Add(ungleichungen);
mainMenu.MenuItems.Add(beendenMenu);
mainMenu.MenuItems.Add(helpMenu);
Menu = mainMenu;
}
public static void Main() // Hauptteil ("Main") des Programms
{
Application.Run(new SteuerelementeForm()); // Fenster initialisieren
}
private void beendenMenu_Click(object sender, EventArgs e){ // Wenn auf Beenden geklickt wurde
Close(); // dann schließe Fenster
}
private void help_click(object sender, EventArgs e){
MessageBox.Show("Ein Programm für Vektoren und Gleichungen.\nGeschrieben in C# \n© by Markus Büttner, 2010");
}
}
}
Code:
using System;
using System.Drawing;
using System.Windows.Forms;
namespace vektoren{
public class vektoren{
private TextBox v1x_koo, v1y_koo;
private TextBox v2x_koo, v2y_koo;
private TextBox ergebnis, ergebn_y;
private TextBox px, py, p2x, p2y, mx, my;
private TextBox v11_koo, v12_koo;
private TextBox erg_spz1, erg_spz2;
private Label p, p2;
private Label v11, v12;
private Label v1x,v1y;
private Label v2x,v2y;
private Label erg_x, erg_y;
private Button ergebns, spitze;
private CheckBox gegenvektor;
private Label m;
public void vektoradditionMenu_Click(object sender, EventArgs e){ // Wenn man Vektoren addieren will
ergebns.Controls.Remove(ergebns);
px.Controls.Remove(px);
py.Controls.Remove(py);
v1x = new Label();
v1y = new Label();
v2x = new Label();
v2y = new Label();
erg_x = new Label();
erg_y = new Label();
v1x_koo = new TextBox();
v1y_koo = new TextBox();
v2x_koo = new TextBox();
v2y_koo = new TextBox();
ergebnis = new TextBox();
ergebn_y = new TextBox();
ergebns = new Button();
v1x_koo.Controls.Add(v1x_koo);
v1y_koo.Controls.Add(v1y_koo);
v1x.Controls.Add(v1x);
v1y.Controls.Add(v1y);
v1x.Name = "v1";
v1x.Text = "Vektor 1 (x): ";
v1x.Location = new Point(8,10);
v1x.Size = new Size(120,20);
v1y.Name = "v1";
v1y.Text = "Vektor 1 (y): ";
v1y.Location = new Point(8,40);
v1y.Size = new Size(120,20);
v2x.Name = "v2";
v2x.Text = "Vektor 2 (x): ";
v2x.Location = new Point(200,10);
v2x.Size = new Size(120,20);
v2y.Name = "v2";
v2y.Text = "Vektor 2 (y): ";
v2y.Location = new Point(200,40);
v2y.Size = new Size(120,20);
erg_x.Name = "ergebnis";
erg_x.Text = "Ergebnis (x)";
erg_x.Location = new Point(10,100);
erg_x.Size = new Size(120,20);
erg_y.Name = "ergebnis";
erg_y.Text = "Ergebnis (y)";
erg_y.Location = new Point(10,130);
erg_y.Size = new Size(120,20);
v1x_koo.Name = "Vektor1_x";
v1x_koo.Text = "";
v1x_koo.Location = new Point(90, 8);
v1x_koo.Size = new Size(90,20);
v1y_koo.Name = "Vektor1_y";
v1y_koo.Text = "";
v1y_koo.Location = new Point(90, 38);
v1y_koo.Size = new Size(90,20);
v2x_koo.Name = "Vektor2_x";
v2x_koo.Text = "";
v2x_koo.Location = new Point(280, 8);
v2x_koo.Size = new Size(90,20);
v2y_koo.Name = "v2";
v2y_koo.Text = "";
v2y_koo.Location = new Point(280, 38);
v2y_koo.Size = new Size(90,20);
ergebnis.Name = "Ergebnis";
ergebnis.Text = "";
ergebnis.Location = new Point(90,98);
ergebnis.Size = new Size(90,20);
ergebnis.Enabled = false;
ergebn_y.Name = "Ergebnis";
ergebn_y.Text = "";
ergebn_y.Location = new Point(90,128);
ergebn_y.Size = new Size(90,20);
ergebn_y.Enabled = false;
ergebns.Name = "Berechnen";
ergebns.Text = "&Berechnen";
ergebns.Location = new Point(200,98);
ergebns.Size = new Size(90,20);
ergebns.Click += new EventHandler(ergebns_click);
p.Controls.Remove(p);
p2.Controls.Remove(p2);
v11.Controls.Remove(v11);
v12.Controls.Remove(v12);
px.Controls.Remove(px);
py.Controls.Remove(py);
v11_koo.Controls.Remove(v11_koo);
v12_koo.Controls.Remove(v12_koo);
erg_spz1.Controls.Remove(erg_spz1);
erg_spz2.Controls.Remove(erg_spz2);
spitze.Controls.Remove(spitze);
gegenvektor.Controls.Remove(gegenvektor);
p2y.Controls.Remove(p2y);
p2x.Controls.Remove(p2x);
v2x_koo.Controls.Add(v2x_koo);
v2y_koo.Controls.Add(v2y_koo);
ergebnis.Controls.Add(ergebnis);
ergebn_y.Controls.Add(ergebn_y);
ergebns.Controls.Add(ergebns);
v2x.Controls.Add(v2x);
v2y.Controls.Add(v2y);
erg_x.Controls.Add(erg_x);
erg_y.Controls.Add(erg_y);
}
public void spitzeberechnenMenu_Click(object sender, EventArgs e){ // Wenn man einen Punkt vom Vektor berechnen will
p.Controls.Remove(p);
p2.Controls.Remove(p2);
ergebns.Controls.Remove(ergebns);
px.Controls.Remove(px);
py.Controls.Remove(py);
p = new Label();
p2 = new Label();
v11 = new Label();
v12 = new Label();
px = new TextBox();
py = new TextBox();
v11_koo = new TextBox();
v12_koo = new TextBox();
erg_spz1 = new TextBox();
erg_spz2 = new TextBox();
spitze = new Button();
gegenvektor = new CheckBox();
p.Name = "P";
p.Text = "Punkt P ( | )";
p.Location = new Point(10,10);
p.Size = new Size(350,20);
p2.Name = "P2";
p2.Text = "Punkt P'( | )";
p2.Location = new Point(200,10);
p2.Size = new Size(200,20);
px.Name = "Px";
px.Text = "";
px.Location = new Point(65,8);
px.Size = new Size(35,20);
py.Name = "Py";
py.Text = "";
py.Location = new Point(110,8);
py.Size = new Size(35,20);
v11.Name = "V";
v11.Text = "Vektor 1 (x)";
v11.Location = new Point(10,40);
v11.Size = new Size(100, 20);
v12.Name = "V";
v12.Text = "Vektor 1 (y)";
v12.Location = new Point(10,70);
v12.Size = new Size(100, 20);
v11_koo.Name = "V11";
v11_koo.Text = "";
v11_koo.Location = new Point(90,38);
v11_koo.Size = new Size(55,20);
v12_koo.Name = "V12";
v12_koo.Text = "";
v12_koo.Location = new Point(90,68);
v12_koo.Size = new Size(55, 20);
erg_spz1.Name = "erg";
erg_spz1.Text = "";
erg_spz1.Location = new Point(255,8);
erg_spz1.Size = new Size(35,20);
erg_spz1.Enabled = false;
erg_spz2.Name = "erg";
erg_spz2.Text = "";
erg_spz2.Location = new Point(300,8);
erg_spz2.Size = new Size(35,20);
erg_spz2.Enabled = false;
spitze.Name = "Berechnen";
spitze.Text = "B&erechnen";
spitze.Location = new Point(200,68);
spitze.Size = new Size(100,20);
spitze.Click += new EventHandler(spitze_berechnen);
gegenvektor.Name = "gegenv";
gegenvektor.Text = "Gegenvektor";
gegenvektor.Location = new Point(200,38);
v2x_koo.Controls.Remove(v2x_koo);
v2y_koo.Controls.Remove(v2y_koo);
ergebnis.Controls.Remove(ergebnis);
ergebn_y.Controls.Remove(ergebn_y);
ergebns.Controls.Remove(ergebns);
v2x.Controls.Remove(v2x);
v2y.Controls.Remove(v2y);
erg_x.Controls.Remove(erg_x);
erg_y.Controls.Remove(erg_y);
v1x_koo.Controls.Remove(v1x_koo);
v1y_koo.Controls.Remove(v1y_koo);
v1x.Controls.Remove(v1x);
v1y.Controls.Remove(v1y);
p2x.Controls.Remove(p2x);
p2y.Controls.Remove(p2y);
m.Controls.Remove(m);
erg_spz1.Controls.Add(erg_spz1);
erg_spz2.Controls.Add(erg_spz2);
p2.Controls.Add(p2);
px.Controls.Add(px);
py.Controls.Add(py);
v11_koo.Controls.Add(v11_koo);
v12_koo.Controls.Add(v12_koo);
p.Controls.Add(p);
v11.Controls.Add(v11);
v12.Controls.Add(v12);
spitze.Controls.Add(spitze);
gegenvektor.Controls.Add(gegenvektor);
}
public void mittelp(object sender, EventArgs e){
v2x_koo.Controls.Remove(v2x_koo);
v2y_koo.Controls.Remove(v2y_koo);
ergebnis.Controls.Remove(ergebnis);
ergebn_y.Controls.Remove(ergebn_y);
ergebns.Controls.Remove(ergebns);
v2x.Controls.Remove(v2x);
v2y.Controls.Remove(v2y);
erg_x.Controls.Remove(erg_x);
erg_y.Controls.Remove(erg_y);
v1x_koo.Controls.Remove(v1x_koo);
v1y_koo.Controls.Remove(v1y_koo);
v1x.Controls.Remove(v1x);
v1y.Controls.Remove(v1y);
p.Controls.Remove(p);
p2.Controls.Remove(p2);
v11.Controls.Remove(v11);
v12.Controls.Remove(v12);
px.Controls.Remove(px);
py.Controls.Remove(py);
v11_koo.Controls.Remove(v11_koo);
v12_koo.Controls.Remove(v12_koo);
erg_spz1.Controls.Remove(erg_spz1);
erg_spz2.Controls.Remove(erg_spz2);
spitze.Controls.Remove(spitze);
gegenvektor.Controls.Remove(gegenvektor);
m = new Label();
p = new Label();
p2 = new Label();
mx = new TextBox();
my = new TextBox();
px = new TextBox();
py = new TextBox();
p2x = new TextBox();
p2y = new TextBox();
ergebns = new Button();
p.Name = "p";
p.Text = "P ( | )";
p.Location = new Point(10,10);
p.Size = new Size(190,20);
p2.Name = "P'";
p2.Text = "P'( | )";
p2.Location = new Point(10,40);
p2.Size = new Size(190,20);
m.Name = "M";
m.Text = "M ( x | y )";
m.Location = new Point(200,40);
m.Size = new Size(100,20);
px.Name = "P";
px.Text = "";
px.Location = new Point(30,8);
px.Size = new Size(40,20);
py.Name="P";
py.Text = "";
py.Location = new Point(80,8);
py.Size = new Size(40,20);
p2x.Name = "P2";
p2x.Text = "";
p2x.Location = new Point(30,38);
p2x.Size = new Size(40,20);
p2y.Name = "P2";
p2y.Text = "";
p2y.Location = new Point(80,38);
p2y.Size = new Size(40,20);
ergebns.Name = "Ergebnis";
ergebns.Text = "Berechnen";
ergebns.Location = new Point(200,8);
ergebns.Click += new EventHandler(mittelpunkt);
px.Controls.Add(px);
py.Controls.Add(py);
p2x.Controls.Add(p2x);
p2y.Controls.Add(p2y);
p.Controls.Add(p);
m.Controls.Add(m);
p2.Controls.Add(p2);
ergebns.Controls.Add(ergebns);
}
private void ergebns_click(object sender, EventArgs e){ // Wenn die Vektoraddition ausgeführt werden soll
try{
string v1_x = v1x_koo.Text;string v1_y = v1y_koo.Text;
string v2_x = v2x_koo.Text;string v2_y = v2y_koo.Text;
decimal v1x = Convert.ToDecimal(v1_x);decimal v1y = Convert.ToDecimal(v1_y);
decimal v2x = Convert.ToDecimal(v2_x);decimal v2y = Convert.ToDecimal(v2_y);
decimal x = 0;decimal y = 0;
x = (v1x + v2x);
y = (v1y + v2y);
ergebnis.Text = x.ToString();
ergebn_y.Text = y.ToString();
}catch (Exception ex){
MessageBox.Show(ex.Message);
}
}
private void spitze_berechnen(object sender, EventArgs e){ // Wenn ein Punkt berechnet werden soll
try{
Console.Write("Berechne Punkt ...\n");
decimal p_x = Convert.ToDecimal(px.Text), p_y = Convert.ToDecimal(py.Text);
decimal v_x = Convert.ToDecimal(v11_koo.Text), v_y = Convert.ToDecimal(v12_koo.Text);
decimal x2, y2;
if(gegenvektor.Checked == true){
x2 = p_x - v_x;
y2 = p_y - v_y;
}else{
x2 = v_x + p_x;
y2 = v_y + p_y;
}
erg_spz1.Text = x2.ToString();
erg_spz2.Text = y2.ToString();
}catch (Exception ex){
MessageBox.Show(ex.Message);
}
}
private void mittelpunkt(object sender, EventArgs e){
try{
decimal p_x = Convert.ToDecimal(px.Text);decimal p_y = Convert.ToDecimal(py.Text);
decimal p2_x = Convert.ToDecimal(p2x.Text);decimal p2_y = Convert.ToDecimal(p2y.Text);
decimal m_x, m_y;
m_x = (p_x + p2_x)/2;
m_y = (p_y + p2_y)/2;
m.Text = "M( " + m_x.ToString() + " | " + m_y.ToString() + " )";
}catch (Exception ex){
MessageBox.Show(ex.Message);
}
}
}
}