Springen naar inhoud


- - - - -
Solved

Dll File Als Childform In Mdiform Krijgen?

dll file childform mdiform vb.net

  • Log in a.u.b. om te beantwoorden
Er zijn 16 reacties in dit onderwerp

#1 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 May 2012 - 11:14


In een mdiform kun je childforms plaatsen en aanroepen op deze manier.:
Visual Basic Code:
 Dim childForm As Integer = 0
		Dim childForms(1) As aboutbox
		childForms(childForm) = New aboutbox()
		childForms(childForm).MdiParent = Me
		childForms(childForm).Show()

Maar hoe kan ik een dynamic form in een dll als childform krijgen in een mdiform?

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#2 chrissie1

chrissie1

    Moderator

  • Moderators
  • 486 berichten
    Laatst bezocht 12 Mar 2013 19:33
  • LocatieMoerbeke-Waas
Inzender

Geplaatst op 29 May 2012 - 11:23

Wat bedoel je met een dynamic form?

#3 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 May 2012 - 12:08

Zoals het eigenlijk al zegt dynamisch een form maken met buttons enz..:
Visual Basic Code:
  If mainform Is Nothing Then
			mainform = New Form
		End If
		'
		'Button1
		'
		Button1.Location = New System.Drawing.Point(12, 12)
		Button1.Name = "Button1"
		Button1.Size = New System.Drawing.Size(259, 23)
		Button1.TabIndex = 0
		Button1.Text = "Spanningsregelaar  Voltage Berekenen."
		Button1.UseVisualStyleBackColor = True
		mainform.Controls.Add(Button1)


Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#4 DieterVB

DieterVB

    Professional Developer

  • Leden
  • PipPipPipPip
  • 340 berichten
    Laatst bezocht 08 Apr 2013 14:49
  • LocatieVlaamse Ardennen

Geplaatst op 29 May 2012 - 12:12

Zoals de codes in je vraag:

Code:
Dim childForm As Integer = 0  
	Dim childForms(1) As aboutbox  
	childForms(childForm) = New aboutbox()  
	childForms(childForm).MdiParent = Me  
	childForms(childForm).Show()  



Met in de MDI form IsMdiContainer op True.

#5 chrissie1

chrissie1

    Moderator

  • Moderators
  • 486 berichten
    Laatst bezocht 12 Mar 2013 19:33
  • LocatieMoerbeke-Waas
Inzender

Geplaatst op 29 May 2012 - 12:19

Dan moet je gewoon ergens zorgen dat die mainform bereikbaar is voor uw andere code, dat kan via een public property, Function, Field en al of niet Shared. Mijn voorkeur gaat uit naar een een Factory methode (zoals in JAva ;-))

Visual Basic Code:
Public Module FormBuilder
  Private _mainForm as Form

  Public Function MakeMainForm() as Form
	If _mainForm Is Nothing Then
	  _mainForm = new Form
   End If
	Return _mainForm
  End Function

End Class


#6 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 May 2012 - 14:34

helaas lost dit mijn probleem niet op.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#7 chrissie1

chrissie1

    Moderator

  • Moderators
  • 486 berichten
    Laatst bezocht 12 Mar 2013 19:33
  • LocatieMoerbeke-Waas
Inzender

Geplaatst op 29 May 2012 - 14:58

Waarom niet?

Visual Basic Code:
Dim childForm As Integer = 0
Dim childForms(1) As Form
childForms(childForm) = FormBuilder.MakeMainForm
childForms(childForm).MdiParent = Me
childForms(childForm).Show()



#8 Vozzie

Vozzie

    Moderator

  • Moderators
  • 1852 berichten
    Laatst bezocht vandaag, 09:40
Inzender

Geplaatst op 29 May 2012 - 15:21

Hallo,

- windows forms application aangemaakt
- 2 library projecten toegevoegd
- output verandert van alle projecten naar "..\Output\Debug\" (project properties, tabblad compile)
- verwijzing (reference) gemaakt vanuit de windows application naar classlibrary1 (niet naar classlibrary2)
- form toegevoegd in classlibrary1 en form toegevoegd in classlibrary2
- in de windows forms application de "IsMdiContainer" property op true gezet
- een menu op de mdi form gesleept, daarin 2 submenu keuzes, library1 en library2

Visual Basic Code:
	Private Sub Library1ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles Library1ToolStripMenuItem.Click
		Dim f As New ClassLibrary1.Form1
		f.MdiParent = Me
		f.Show()
	End Sub
	Private Sub Library2ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles Library2ToolStripMenuItem.Click
		Dim objectHandle As System.Runtime.Remoting.ObjectHandle
		objectHandle = Activator.CreateInstanceFrom("ClassLibrary2.dll", "ClassLibrary2.Form1")
		Dim f As Form = DirectCast(objectHandle.Unwrap(), Form)
		f.MdiParent = Me
		f.Show()
	End Sub

De form in library2 is dynamisch geladen, maar ik denk niet dat je dat bedoelt...

Vanuit je childform kan je altijd aan de MainForm via de MdiParent property. Wil je meer kunnen uitwisselen tussen de MdiContainer en MdiChild kan je best een interface gebruiken...

En om je formulier te bouwen, eventueel aan de hand van parameters, kan je een factory method schrijven zoals chrissie zegt. Zelfs in een dll(library).


Groetjes

Bijgevoegde Bestanden


Stappen, keuzes en herhaling combineren is programmeren.
Explicit, Strict and don't Infer

#9 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 May 2012 - 15:35

Oke dat lijkt er inderdaad meer op het geen dat ik dus verwacht.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#10 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 29 May 2012 - 18:30

Nu stel ik heb dus zoals Vozzie zijn manier een menu opgeroepen die childform is.
Hoe kan ik van daaruit een ander dll form tonen , maar als child in die mdiparrent want zo krijg ik de melding.:
Form that was specified to be the MdiParent for this form is not an MdiContainer.
Parameter name: value

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#11 chrissie1

chrissie1

    Moderator

  • Moderators
  • 486 berichten
    Laatst bezocht 12 Mar 2013 19:33
  • LocatieMoerbeke-Waas
Inzender

Geplaatst op 29 May 2012 - 20:17

heb je IsMdiContainer op true gezet voor je mdiparent form?

#12 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 30 May 2012 - 04:58

Als ik dat doe gaan mijn forms in het menu zitten.
Zal uitleggen hoe de huidige situatie is zoals het voorbeeld van Vozzie.
Ik heb dus een hoofdscherm met een menubalk en dat is IsMDIContainer en staat op true.
Vanuit die menu , kan mijn een menu scherm starten die alle calculators toont , deze is dus de child (het menu is niks anders als een form zonder border met knoppen van alle calculators).
Nu worden alle calculators gestart vanuit mijn menu.
Maar dan krijg je dus dat ik vanaf dat moment mijn programma's start vanuit de mdichild , dus worden die als een normale form afgehandeld en vallen buiten het hoofdscherm, en niet erbinnen zoals het menu en mijn menu.
Nu is dus mijn vraag, kan ik vanuit mijn childform andere programma's en die in het hoofdscherm tonen ook als child?
Bijlage  vbelek.png   218.11K   19 downloads

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#13 chrissie1

chrissie1

    Moderator

  • Moderators
  • 486 berichten
    Laatst bezocht 12 Mar 2013 19:33
  • LocatieMoerbeke-Waas
Inzender

Geplaatst op 30 May 2012 - 08:26

Dus als ik het goed begrijp.

is de Me in deze lijn.

Visual Basic Code:
childForms(childForm).MdiParent = Me

eigenlijk uw menu met knoppen en niet het hoofdscerm.

Wat je dus eigenlijk moet doen is

Visual Basic Code:
childForms(childForm).MdiParent = Me.Parent

of meer waarschijnlijk.

Visual Basic Code:
childForms(childForm).MdiParent = Me.MdiParent


#14 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 30 May 2012 - 08:39

Oke zal het eens vanmiddag als ik weer thuis ben eens proberen.
Alvast bedankt, zal het wel melden of het heeft gewerkt wat ik bedoel ;)

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#15 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 30 May 2012 - 09:13

Even snel on remote getest en werkt , thx.
Nu nog 1 kleine vraag.
Ik heb al vanalles geprobeer om dat menu , wat in de foto te zien is,  te docken naar boven.
Maar wat ik ook probeer hij doet het gewoon niet.
Ik heb via de properties de dock ingesteld en via code en in de code van Vozzie/jouw met bv.:
Visual Basic Code:
f.MdiParent.Dock = DockStyle.Top
maar hij blijft in het midden staan.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***


#16 DieterVB

DieterVB

    Professional Developer

  • Leden
  • PipPipPipPip
  • 340 berichten
    Laatst bezocht 08 Apr 2013 14:49
  • LocatieVlaamse Ardennen

Geplaatst op 30 May 2012 - 12:10

Is het niet de child form die je wilt docken?
Code:
f.Dock = DockStyle.Top 


#17 pascalbianca

pascalbianca

    Webmaster/Admin

  • Webmaster
  • 3684 berichten
    Laatst bezocht vandaag, 17:13
  • LocatieSusteren, Nederland, Midden Limburg.
Inzender

Geplaatst op 30 May 2012 - 13:02

Jup dat is hem, thx.

Wat is het gezegde in Ontwikkeling van software.: Er zijn vele wegen die naar Rome leiden, de kunst is de goede te vinden.
email : pascalbianca@vbib.be
of email : webmaster@vbib.be
MSN.:: pmhaschuffelers@hotmail.com
Volg ook mijn Raspberry Pi Blog.:: link


Geplaatste afbeelding


Huisregels - Tutorials - VS 2012 Express - Keybinding Posters - Code Tags gebruiken - LessThenDot - MSDN


*** If you like you're solution or appriciate the crew's effort, please click on the facebook like or the Google + button ***






Ook met taq Solved, dll file, childform, mdiform, vb.net voorzien

0 gebruiker(s) lezen dit onderwerp

0 lid(leden), 0 bezoeker(s), 0 anonieme gebruikers

Inloggen


[Solved] Untitled 1

Hosting provided by Combell
Met dank aan Jürgen voor de jarenlange inzet van visualbasic.be (anno dec 2000)
Met dank aan Mike en Ronneke voor de jarenlange inzet van vbib.be (anno dec 2010)
vbib.be - vbnet.be - vbdotnet.be - visualbasic.be