|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Help Visual C#
Ho creato una form "Main" con cui voglio visualizzare altri due form "PannA" e "PannB" che ho creato con la funzione di Visual C# Add Windows Form; ho creato due semplici bottoni, ma quando è il momento di chiamare i due form "A" e "B" mi dice che non sono stati iniziallizzati. Come risolvo?
Grazie in anticipo |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
non avrai utilizzato il new per inizializzali, se posti il codice forse si riesce ad essere più precisi
![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db Ultima modifica di Riordian : 07-11-2006 alle 11:06. |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
ehm....
![]() ![]() ![]() ![]() ![]() adesso funziona ma mi sa che ho fatto casino lo stesso ![]() Questo per il Main using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace Generazione_albero { public partial class Main : Form { Form panA = new PannelloA(); Form panB = new PannelloB(); public Main() { InitializeComponent(); } private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Text == "PannelloA") panA.ShowDialog(); if (e.Node.Text == "PannelloB") panB.ShowDialog(); } private void MainClick(object sender, EventArgs e) { } private void PannelloAClick(object sender, EventArgs e) { panA.ShowDialog(); } private void PannelloBClick(object sender, EventArgs e) { panB.ShowDialog(); } } } Questo è per il PannelloA using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Xml; namespace Generazione_albero { public partial class PannelloA : Form { public PannelloA() { InitializeComponent(); } private void PannelloA_Load(object sender, EventArgs e) { // Initialize the controls and the form. label1.Text = "File Path"; label1.SetBounds(8, 8, 50, 20); textBox1.Text = Application.StartupPath + "\\Sample.xml"; textBox1.SetBounds(64, 8, 256, 20); button1.Text = "Populate the TreeView with XML"; button1.SetBounds(8, 40, 200, 20); this.Text = "TreeView control from XML"; this.Width = 336; this.Height = 368; treeView1.SetBounds(8, 72, 312, 264); } private void button1_Click(object sender, EventArgs e) { try { // SECTION 1. Create a DOM Document and load the XML data into it. XmlDocument dom = new XmlDocument(); dom.Load(textBox1.Text); // SECTION 2. Initialize the TreeView control. treeView1.Nodes.Clear(); treeView1.Nodes.Add(new TreeNode(dom.DocumentElement.Name)); TreeNode tNode = new TreeNode(); tNode = treeView1.Nodes[0]; // SECTION 3. Populate the TreeView with the DOM nodes. AddNode(dom.DocumentElement, tNode); treeView1.ExpandAll(); } catch (XmlException xmlEx) { MessageBox.Show(xmlEx.Message); } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void AddNode(XmlNode inXmlNode, TreeNode inTreeNode) { XmlNode xNode; TreeNode tNode; XmlNodeList nodeList; int i; // Loop through the XML nodes until the leaf is reached. // Add the nodes to the TreeView during the looping process. if (inXmlNode.HasChildNodes) { nodeList = inXmlNode.ChildNodes; for(i = 0; i<=nodeList.Count - 1; i++) { xNode = inXmlNode.ChildNodes[i]; inTreeNode.Nodes.Add(new TreeNode(xNode.Name)); tNode = inTreeNode.Nodes[i]; AddNode(xNode, tNode); } } else { // Here you need to pull the data from the XmlNode based on the // type of node, whether attribute values are required, and so forth. inTreeNode.Text = (inXmlNode.OuterXml).Trim(); } } } } |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
purtroppo non ho il tempo per analizzarlo essendo a lavorare ma:
hai qualche dubbio sul tuo codice? non funziona? in che senso hai combinato un casino? P.S. Stai usando il 2.0 vedo. Noi qua in ditta siamo fermi ancora all'1.1 spero in un prossimo progetto di utilizzare il 2.0.
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db |
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Si in ufficio noi usiamo la 2.0;
penso di aver fatto casino nel senso che sono riuschito a far funzionare il tutto con queste righe Form panA = new PannelloA(); Form panB = new PannelloB(); panA.ShowDialog(); panB.ShowDialog(); le ho inserite nell'even del Main, ma leggendo ho visto che si dovrebbe usare un'altra costruzione, probabilmente la dialog box, ma ci ho capito poco perchè a visual non ci sono abituato e non trovo il punto di codice dove crea i form |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
Sono sempre di corsa comunque intanto non capisco perche hai usato la dichiarazione
Form panA = new PannelloA() Form panB = new PannelloB() io avrei dichiarato PannelloA panA = new PannelloA() PannelloB panB = new PannelloB() cmq poi appena ho un po' di calma provo a vedere meglio. Poi se qualcun'altro mi anticipa meglio ![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db |
![]() |
![]() |
![]() |
#7 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Grazie per l'aiuto
![]() |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
di nulla, cmq non capisco le tue remore sui form, per le applicazioni windows la form class è la classe base delle windows che si creano nel progetto (a meno che nel 2.0 non sia cambiato qualche cosa ma non penso)
![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db |
![]() |
![]() |
![]() |
#9 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Non ho nessun problema con i form è solo che non trovo un punto nel codice generato dove viene scritto
Form PannelloA = new Form(); e mi aspetterei di trovarlo. |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Apr 2005
Città: Resana - TV
Messaggi: 960
|
Quote:
![]() io non ne vedo il senso, per farti un esempio, quando crei una nuova classe di nome miaNuovaClasse, mica viene scritto da qualche parte nel codice Codice:
Class miaNuovaClasse = new Class(); |
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
Quote:
PannelloA è un tipo che te hai creato tramite visual studio. Dovresti avere da qualche parte (mi aspetterei un file PanneloA.cs) in cui hai una definizione simile a quella sotto: public class PannelloA:Form { ........... } cioè una definizione di una Classe PannelloA che eredita la classe Form. Poi tramite la definizione PannelloA panA dichiari un oggetto di tipo PannelloA A questo punto lo inizializzi con panA = new PannelloA() la formula in una riga è proprio PannelloA panA = new PannelloA() la riga che hai scritto: Form PannelloA = new Form() non la troverai mai così dichiareresti un oggetto pannelloA di Tipo Form e lo inizializzeresti ma non è ciò che serve nella tua applicazione ![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db Ultima modifica di Riordian : 08-11-2006 alle 12:45. |
|
![]() |
![]() |
![]() |
#12 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Hai perfettamente ragione, ho fatto esattamente la procedura che hai descritto;
abbi pazienza ma non conosco ne c# ne Visual e sto imparandolo ora ![]() Quindi la dialog box non mi serve? |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
io credo che semplicemente, solo nell'evento dei bottoni, dovresti scrivere questo codice:
Codice:
//supposto che i bottoni si chiamino "button1" e "button2" private void button1_Click(object sender, Eventargs e) { Form PannelloA = new Form() PannelloA.Show(); } //stessa cosa per il secondo form
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek ![]() |
![]() |
![]() |
![]() |
#14 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Bene, allora è corretto quello che ho fatto.
![]() Grazie |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
Quote:
Codice:
private void button1_Click(object sender, Eventargs e) { PannelloA panA= new PannelloA() panA.ShowDialog(); } ![]() e lui le due form le usa anche in Codice:
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { if (e.Node.Text == "PannelloA") panA.ShowDialog(); if (e.Node.Text == "PannelloB") panB.ShowDialog(); } ![]() P.S. @jack Appena ho tempo ti rispondo al PVT ![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db |
|
![]() |
![]() |
![]() |
#16 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
Ho corretto funziona tutto perfettamente
![]() |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Mar 2006
Città: Genova
Messaggi: 2457
|
Quote:
![]()
__________________
tag XBOX live Aldair74 Nick PSNRiordian Affari conclusi con: Anf3t4m1n Krocca magomagnani amoredipippa mone_82 raszagale bizzy89 Andrew_db |
|
![]() |
![]() |
![]() |
#18 |
Member
Iscritto dal: Jun 2005
Messaggi: 169
|
si ma ho modificato il codice dichiarando i form esternamente all'even; più comodo
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 11:06.