Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


MDIParentkontroller för att styra Barnen

Postades av 2007-05-16 22:48:42 - Fredrik Leufkens, i forum vb.net, Tråden har 10 Kommentarer och lästs av 646 personer

Hej!
Har provat göra lite olika sorters texteditorer.

Nu vill jag prova göra den med hjälp av MDIparent True på huvudformuläret. I detta så skapas barn när man tex skapar en ny fil från menyn.

Vidare är det så att på MDIParent fönstret så har jag satt en toolbar. Toolbaren har funktioner som att göra text till fetstil osv. Men Jag vet inte hur jag skall få just de här funktionerna att refereras till ett barnfönster? Funktionerna som har hand om textformatering ligger i en egen fil (clsTxtformatering.vb) vidare har jag ytterligare en klassfil (clsFilhantering.vb) Båda skall ju "nås" och verktygen skall ju hantera de för stunden "aktiva" barnfönstret.

Vidare så vill jag veta vad ni anser om detta: Är det lämpligast att använda sig av Textbox, eller är det bättre att använda richtextbox? Hittils har jag bara kört med de sistnämnda, är detta "rätt"? För mig är textboxkontrollen till för lite mindre inmatningar? Vad är vinster/förluster mellan de olika kontrollerna?


Svara

Sv: MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 10:45:59 - Lars Gottfridsson

Hej Fredrik!

Först TextBox Vs. RichTextBox:

RichTextBox tillåter att man använder sig av flera färger, fonter, storlekar mm.

sen en fråga:

Hur vet Parent-formuläret vilket child-formulär som är aktivt?
Den förlorar ju focus när du klickar på toolbaren?
Har inte jobbat så mycket med mdi, men du kan ju alltid ha en flagga i en
modul som representerar "senast aktiva child"





Svara

Sv:MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 11:03:00 - Fredrik Leufkens

Precis! Där sa du nått!

Jag skriver en public property som sätter en variabel till ett värde som representerar barnets "identifikationsnummer".

Nästa fråga... _vad_ är barnets "identifikationnummer" - vilken egenskap är det jag skall använda för det?

EDIT:
Lägger till lite mer här.

Det finns ju två olika events man skulle kunna använda. (för Child Formuläret nu då)
Det ena är "Me.GotFocus" eller "Me.LostFocus". Finns det någon rekommendation på vilken man "bör" använda i det här fallet. Jag ser det som att det är den förstnämnda man skall använda? För om jag sätter en variabel till ett värde varje gång ett barn FÅR focus - så är det detta som skall gälla sedan (tills någon annan får focus). Om vi har scenariot: två barn i en MDI och vi använder "lost focus" så kommer ju inte den "nuvarande" vara lagrad i "senast aktiv"-propertyn - utan den "förra"? Men använder man Lost focus i variabeln så kommer ju den "tidigare" vara lagrad.

Jag har tidigare när jag velat använda en variabel globalt inom en klass använt Private shared osv... Är detta ett bra sätt att uppnå detta? Eller underkastar man vid en sån här programering finessen med att "kapsla in" osv?


Svara

Sv: MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 12:29:37 - Fredrik Leufkens

Jag lägger till lite kod oxå...

Här kommer det som ligger i clsChildForm.vb (dock bara den händelse som avses, om jag använt fel händelse berätta gärna det :))

    Private Sub clsChildForm_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.GotFocus
        clsChildHantering.SenastAktiv = Me.ActiveMdiChild
    End Sub

Då passar det bra att titta vad som händer i clsChildHantering.SenastAktiv: (Ligger i clsChildHantering.vb)
Public Class clsChildHantering
    Private Shared _strSenastAktiv As System.Windows.Forms.Form
    Public Shared Property SenastAktiv() As System.Windows.Forms.Form
        Get
            Return _strSenastAktiv
        End Get
        Set(ByVal value As System.Windows.Forms.Form)
            _strSenastAktiv = value
        End Set
    End Property
End Class

För att sedan ta en funktion som ligger i textpadens "huvudfönsters" toolbar. Nämligen den funktionen som skall göra den markerade texten i de senast aktiva barnfönstrets rika textbox till fet respektive Kursiv stil.

Jag har provat lite här. Med att försöka komma åt "senast_aktiv" och därigenom rätt rika textbox. Men har inte lyckats. I koden här nedan så är anropen som annars fungerar då man har en textruta i samma formulär så att säga.
    Private Sub TSbtnFet_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles TSbtnFet.Click
        Dim objMarkering As New clsTxtFormatering
        'rtbTxtArea.SelectionFont = objMarkering.AndraFontStil(rtbTxtArea.SelectionFont, rtbTxtArea.SelectionFont.Style, FontStyle.Bold)
    End Sub

    Private Sub TSbtnI_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSbtnI.Click
        Dim objMarkering As New clsTxtFormatering
        'rtbTextArea.SelectionFont = objMarkering.AndraFontStil(rtbTextArea.SelectionFont, rtbTextArea.SelectionFont.Style, FontStyle.Italic)
    End Sub


Frågan är då. Hur når jag den senast aktiva textboxens textmarkering?


Svara

Sv:MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 15:20:15 - Johan Djupmarker

Ett hett tips är annars att använda ActiveMdiChild på MdiContainern... ;)

/Johan


Svara

Sv: MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 16:04:40 - Fredrik Leufkens

Japps hittade detta sedan. Men forfarande är det trubbel!

Jag får den inte att förstå att det är en richtextbox (som har en hel del andra propertys)?

Det närmsta jag kommer är:
ActiveMdiChild.ActiveControl.Text = "Snusdosa"

Då skriver den ut Snusdosa på kontrollen...Men jag får inte tag i "SelectionFont" som jag behöver i min funktion.


Svara

Sv:MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 16:36:58 - Johan Djupmarker

Du måste casta den till din formulärtyp, kommer inte ihåg hur man gör det i VB.NET, kanske såhär?

Dim AktivtMDIChild As MinMDIChildFormulKlass = ActiveMdiChild

Sedan kan du använda:

AktivtMDIChild.MinRichTextKontroll.Text = "Snusdosa"

/Johan


Svara

Sv: MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 17:27:45 - Fredrik Leufkens

mmm! Det där fungerar faktiskt! Förutom att Option strict klagar enligt:

Error 1 Option Strict On disallows implicit conversions from 'System.Windows.Forms.Form' to 'WindowsApplication1.clsChildForm'.

Men stänger jag av OP strict så fungerar det.


Svara

Sv:MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 17:48:36 - Oskar Johansson

Stäng inte av option strict!!!

Använd CType istället..


Svara

Sv: MDIParentkontroller för att styra Barnen

Postades av 2007-05-17 17:52:36 - Fredrik Leufkens

Nej... detta vågar jag absolut inte.. Men ibland så provar jag bara en snabbis för att "se vad som händer"

CType... Tackar.. skall prova med den


Svara

Sv:MDIParentkontroller för att styra Barnen

Postades av 2007-05-18 10:20:34 - Fredrik Leufkens

Dåså, Var det dags att validera den här tråden som löst.

Men sammanfattar här lösningen:

'kräver option strict off
Dim AktivtMDIChild As MinMDIChildFormulKlass = ActiveMdiChild

AktivtMDIChild.MinRichTextKontroll.Text = "Snusdosa"


Ovan fungerar som sagt. Men skall man använda option strict=On så är det inte påpulärt med den dimmensioneringen.

Denna bör istället vara enligt:
Option strict on
Dim AktivtMDIChild As MinMDIChildFormulKlass = CType(ActiveMdiChild, MinMDIChildFormulKlass)

AktivtMDIChild.MinRichTextKontroll.Text = "Snusdosa"


Tackar för hjälpen.


Svara

Nyligen

  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper
  • 16:36 Allt du behöver veta om keramiskt
  • 16:14 Vem anlitar man egentligen när tak

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 725
27 958
271 751
403
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies