webForumDet fria alternativet

OpenFileDialog (VB.NET)

6 svar · 467 visningar · startad av Rickard

RickardMedlem sedan maj 2001284 inlägg
#1

Hejsan!

Jag är helt nybörjare och sittyer å leker och experimenterar i VB.NET, och har nu kört fast lite på en funktion.

Jag vill via menyn "file|open" i en MDIcontainer, öppna en txt fil i en MDIchild... men vettefan hur jag gör det...

Jag har tidigare lekt i Delphi 6.0, men där lånade jag andras programkod och gjorde om den så den passade mig, nu vill jag lära mig på egen hand, men får det inte att fungera...

En screenshot på delphiprogrammet finns på https://www.midnight-sun.org/tos3.JPG

Jag har kommit så långt som att få upp en open file dialog och filtrerar efter enbart .txt ...
Men resten kan jag inte... någon som kan fylla i åt mig?

Private Sub mnuOpenItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuOpenItem.Click
        OpenFileDialog1.Filter = "Textdokument (*.txt)|*.txt"
        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then

        End If
    End Sub

Hoppas ni förstår vad jag menar.

/Rickard

RickardMedlem sedan maj 2001284 inlägg
#2

Ingen som vill/kan hjälpa mig?
Eller har jag åter igen skrivit för otydligt vad det är jag vill? =(

fredrikMedlem sedan dec. 19991 082 inlägg
#3

Efter du har gjort "ShowDialog()" kan du hämta ut vald fil med egenskapen "FileName", dvs:

dim strSelectedFile as string = OpenFileDialog1.FileName

RickardMedlem sedan maj 2001284 inlägg
#4

Nu förstår jag lika mycket som en babian förstår en isbjörn.. =)

Du har inte lust/möjlighet att skriva klart hela koden för just detta så vore jag hemsk glad... =)

/Rickard

fredrikMedlem sedan dec. 19991 082 inlägg
#5

Hmm....jag trodde frågan var hur du hämtade ut valt filnamn...men men, här kommer lite kod för att visa hur du läser in filen med...

OpenFileDialog1.Filter = "Textdokument (*.txt)|*.txt"

        If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Dim strFileName As String = OpenFileDialog1.FileName

            Dim strR As New IO.StreamReader(strFileName)
            Dim Content As String = strR.ReadToEnd()
            MessageBox.Show(String.Concat("Filen du valde innehöll: ", vbCrLf, Content))
        End If

Sen antar jag att du ska visa upp texten i någon form av kontroll med....

RickardMedlem sedan maj 2001284 inlägg
#6

Tack, nu kom jag en liten bit på vägen i allafall...

Men inte ritkigt dit jag ville...
Har suttit å mixtrat lite med det där själv nu men inte kommit någon vart.

Saken är ju den, att huvudprogrammet är en MDIparent, som skall öppna textfiler i små mdichilds....

Så som den där koden gör med en inläst fil, är ju att öppna filen i en dialogbox med en OK knapp...
Det är ju meningen att den inlästa filen skall läsas in till en MDIchild med en ritchtextbox i, och däri kunna editeras, skrivas ut eller whatever...

Å om vi säger så här då... programmets namn "TOS" ska vara en förkortning utav " Text Operating System " eftersom det påminner om Win3.1 med alla små program liggandes längst nere i ett hörn, så ska denna MDIparrent sammla alla notepads (eller i detta fall, alla RitchTextBoxes) i ett enda fönster.

fredrikMedlem sedan dec. 19991 082 inlägg
#7

ok...ja, jag skrev ju bara exemplet för att öppna och läsa ut textfilen....

ok..gör så här

1. Skapa ett formulär som du sätter till "IsMdiMdiContainer = true".
2. Skapa ett till formulär där du lägger en richTextbox
3. I huvudformuläret skapar du en knapp/meny eller vad du nu vill ha för att öppna nya filer
4. Vid händelse för öppna skapar du en ny instans av textbox-formuläret och sätter dess MdiParent till Me, typ:

If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
            Dim strFileName As String = OpenFileDialog1.FileName

            Dim strR As New IO.StreamReader(strFileName)
            Dim Content As String = strR.ReadToEnd()
            
            Dim frmRef as new FrmTxtForm()
            frmRef.mdiParent = me
            frmRef.RICHTEXTBOX_CONTROL.text = Content
            frmRef.Show()
        End If
Genererad på 379 ms · cache AV · v20260730165559-full.f96bc7eb