Hallo
Du musst die Eingaben in Variablen speichern und dann an eine entsprechende Funktion übergeben. Bei Addition halt an eine Funktion, die addiert usw.
chrische
Okay, eventuell musst Du einfach eine System.Collections.Hashtable verwenden. Allerdings musst Du hier dafür Sorge tragen, dass dies irgendwie initialisiert wird, da die Property der Settings ja Read-Only ist.
Versuchmal, eine Hashtable per Hand als XML zu serialisieren, schau Dir diese Repräsentation an und kopier sie in die Settings.settings-Datei an die entsprechende Stelle (als XML-Datei öffnen!). Ich habe das noch nie ausprobiert, das müsste aber gehen.
Hallo,
ich hoffe hier kann mir jemand weiterhelfen. In unmengen anderer Foren usw habe ich nichts dazu gefunden, was mir weitergeholffen hat.
Folgendes Problem:
Ich habe eine COM-Client-Anwendung, die über eine Methode in einer (von mir geschriebenen) DLL die ProgId eines ActiveX-Controls (ein User-Interface) abfragt und das ActiveX-Control dann verwenden will. Der zugriff der COM-Anwendung auf meine .NET-DLL funktioniert schon usw.
Mein Problem ist, dass ich in C# programmiere und mir daher nur Windows.Forms zur Verfügung stehen.
Wie muss ich vorgehen, um ein Windows.Form so zu veröffentlichen, dass es von der Anwendung sozusagen als ActiveX-Element behandelt werden kann ?
Mit anderen Worten: Wie implementiere ich ein ActiveX-Steuerelement in C#/.NET ?!?
Ich weiss, dass das nicht gerade einfach sein wird, aber ich habe leider keine andere Möglichekeit.
Vielen Dank im vorraus!
MfG
Dominik
Vorrausgesetzt der Typ hat einen Konstruktor, der keine Argumente erwartet kannste sowas machen:
public void machWas(object einObj)
{
Object obj = einObj.GetType().GetConstructor(new Type[0]).Invoke(new object[0]);
}
Mir kommt die Problematik auch ziemlich verkorkst vor (mit anderen Worten: Fehldesign!) aber wenn's das wirklich sein sollte, kannst Du folgendes versuchen:
// Am Anfang der Datei:
using Pair = System.Collections.Generic.KeyValuePair<System.GUID, string>;
Dictionary<GUID, Pair> dict = new Dictionary<GUID, Pair>();
dict.Add(guid, new Pair(guid, "Text");
Ich bekomme bei DocumentText und "rechtsklick->quelltext anzeigen" das gleiche Stell mal deine Frage etwas besser. Was für Xml Code? Woher? Wie sieht er aus? Was hast du weiter vor? Von einer Html seite bekommst du außerdem so weit ich weiß kein XML Code...
Mfg Helfender Helfer
http://www.2video.de/index.php der speichert die Flash Filme, - du musst also auch einen Flash abspieler besitzen.
FLV Player -> http://www.zdnet.de/downloads/prg/8/1/en10467081-wc.html
Möglichkeiten gibt es immer. Es ist aber unschön die Buttonfunktion aufzurufen.
Mann sollte sowieso Klassendesign verwenden und nicht irgendwelche Funktionen einfach mal hinschreiben. Was wenn die Funktion auch noch woanderes aufgerufen werden soll.
Hallo. Habe folgendes Problem, welches mich echt zum Verzweifeln bringt. Ich will in eine Tabelle via cell1.Controls. Add(DropDownList) eine Dropdownlist einfügen.
Die DropDownList erhält ihre Werte zuvor aus einer Datenbank. Die DropDownList lässt sich auch wunderbar in die Tabelle einfügen und bekommt auch die Werte. Problem ist jetzt allerdings, dass die selectedindexchange Methode der DropDownlist nicht mehr aufgerufen wird sondern ein Fehler angezeigt wird.
Fehlermeldung: "Fehler beim Laden des Ansichtszustands. Die Steuerelementstruktur, in die der Ansichtszustand geladen werden soll, muss mit der Steuerelementstruktur übereinstimmen, die während der letzten Anforderung zum Speichern des Ansichtszustands verwendet wurde. Beim dynamischen Hinzufügen von Steuerelementen müssen die während eines Sendevorgangs hinzugefügten Steuerelemente z.B. in Typ und Position mit den während der ursprünglichen Anforderung hinzugefügten Steuerelementen übereinstimmen. "
Meine Frage ist jetzt, warum meine DropDownListen aufeinmal nicht mehr funktionieren, sobald ich diese in eine Tabelle einbinde. Kann ich, wenn ich Controls verwende nicht mehr mit der selectedchangeindex arbeite?
Hier ein paar relvante Codeausschnitte:
protected void AddDynRows(System.Web.UI.Control con1, System.Web.UI.Control con3)
{
// dynamische Tabelle erstellen
int newRowCount = RowCount;
Table t = new Table();
for (int rowCounter = 0; rowCounter < 1; rowCounter++)
{
TableRow r = new TableRow();
r.CssClass = "tablesubline";
newRowCount++;
// erste Zelle mit Label
TableCell c = new TableCell();
c.ID = "Cell" + newRowCount + 1;
c.Controls.Add(con1);
r.Controls.Add(c);
// zweite Zelle mit DropDownList
**TableCell c2 = new TableCell();
DropDownList mydrop = new DropDownList();
mydrop.SelectedIndexChanged += new EventHandler(mydrop_selectedindexchanged);
mydrop.AutoPostBack = true;
Basisabfrage(mydrop);
c2.Controls.Add(mydrop);**c2.ID = "Cell" + newRowCount + 2;
r.Controls.Add(c2);
// dritte Zelle mit Label
TableCell c3 = new TableCell();
c3.Controls.Add(con3);
r.Controls.Add(c3);
// Zelle mit Button
TableCell c4 = new TableCell();
System.Web.UI.WebControls.Button btn = new System.Web.UI.WebControls.Button();
btn.Text = "Row " + newRowCount;
btn.Click += new EventHandler(RowButtonClick);
c4.ID = "Cell" + rowCounter + 3;
c4.Controls.Add(btn);
r.Controls.Add(c4);
t.Controls.Add(r);
}
t.BorderStyle = System.Web.UI.WebControls.BorderStyle.Solid;
t.BorderWidth = 1;
this.form1.Controls.Add(t);
RowCount = newRowCount;
}
void mydrop_selectedindexchanged(object sender, EventArgs e)
{
rebuildDynRows();
}
Wäre echt dankbar für jede Hilfe!
Gruß bungee2002
Hallo,
schau dir mal die Funktion "GetOleDbSchemaTable" der "OleDbConnection" Klasse an.
Mit der richtigen "OleDbSchemaGuid" wie z.B. "Table_Constraints" kannst du dir dann die Informationen ranziehen.
Gruß
Michael
du könntest n datagridview verwenden, bei dem kannste afaik einiges an sachen einstellen, wie die cells und columns etc aussehen. habe das mal gemacht und nen tree rein implementiert.
du kannst der datagridview auch einfach von hand quasi zeilen hinzufügen mit:
DataGridView dgvTemp = new DataGridView();
dgvTemp.Rows.Add(new DataGridViewRow());
also so übersichtsweise. müsstest dich halt mit der api nochmal auseinander setzen, um für deine aufgaben alles herauszufinden.
aber mit der datagridview gehts auf jeden fall, ist recht mächtig das ding
Hi.
Folgendes:
Wenn ich auf einem TabControl in der Anwendung mit Rechts klicke, geht ein Contextmenü auf. Jedoch fühlt sich beim draufklicken die TabPage angesprochen.
Ich habe demnach ein Event dort abgefangen.
Durch den Rechtsklick sollen Funktionen dargestellt wie "Schließen, Andere Schließen, Alle Schließen u.s.w.". Es ist also so eine Leiste wie die TabPages in Browsern.
Über die TabPage (also beim Rechtsklicken den Registrierkarten) kann ich aber irgendwie nicht abfragen, welche Registrierkarte ich genau geklickt habe. Selbst über ein paar Child-oder Member-Funktionen bekam ich das nicht raus.
Wenn ich das Event versuchen würde, über jeden einzelnen TabControl (bei Visual C# 2005 heißt die Eigenschaft z.B. "ToolStrip1 auf TapPage1") seperat zu ziehen, readgiert der Klickbereich nicht mehr, sondern das Contextmenü erscheint auf der Fläche des TabControls.
Weiß jemand eine Lösung auf dieses Problem?
Guten Tag allerseits!
Habe eine Frage zu diesem Code:
DataTable t1 = new DataTable();
t1.Columns.Add("id");
DataTable t2 = new DataTable();
t2.Columns.Add("id_t1");
DataSet ds = new DataSet();
ds.Tables.Add(t1);
ds.Tables.Add(t2);
ds.Relations.Add("test", t1.Columns[0], t2.Columns[0]);
DataRow dtT1 = t1.NewRow();
dtT1["id"] = 1;
t1.Rows.Add(dtT1);
DataRow dtT2 = t2.NewRow();
dtT2["id_t1"] = 1;
t2.Rows.Add(dtT2);
ds.AcceptChanges();
t1.Rows[0].Delete(); // <--
t1.AcceptChanges();
Es bestehnt eine Parent/Childbeziehung. Warum ist das Löschen der Parentzeile möglich? Auf DB-Ebene dürfte das nicht gehen.