Vinnaren i pepparkakshustävlingen!
2018-01-14, 17:56
  #1
Medlem
---> Gå direkt till "Problemet"/kursiv text om du inte orkar läsa mitt gnäll ;-)

Hej annars i.a.f. *wink*. Tänkte tidigare här att jag skulle ge mig på att lära mig C#. Så... som lärometod körde jag då på att skriva ett enklare, men användbart program(så det blir skoj). Det är en Texteditor, upplagd som jag alltid har velat ha den. Jag stjäl i princip lösningen. Inget copy paste rakt av, men nästan, då jag har kollat andras program och sen använt samma lösning själv. Dock kommer detta i princip färdigt som en funktion(er) i språket/editorn, och kan, om de ska användas inte göras på så många olika sätt, är mest för att jag behöver hjälp att lära in rätt syntax jag gör såhär. Jag tycker detta problem inte borde finnas egentligen, utan det borde kunna gå direkt(via OS)! Nästan så jag vill tro att detta är en bugg!(?)

Jag har nu då snickrat ihop en grundläggande texteditor som är precis som jag önskar mig att en sån ska vara. Endast Öppna, Spara, o en högerklicksmeny, finemang med bara det jag verkligen använder, och ingenting annat. En simplare texteditor än windows notes! :-). Kul med nåt man faktiskt använder... Det är bara ett problem... :-S

Problemet:
Min texteditor är vald som "default"/"Opens with.." hur mitt OS Windows 10 ska hantera *.txt vid dubbelklick. När jag dubbelklickar på en textfil laddas dock aldrig textfilens innehåll, bara själva texteditorn öppnas, men "tom". Varför är det såhär? Hur löses detta? Vilket annat program som helst laddar ju filen man dubbellklickar på om det associeras ihop med dess ändelse i OS:et.

Det är ett "windows form"-program som i huvudsak använder en "RichTextBox" där allt visas, sen en "menustrip"-menyrad högst upp, å en "menustrip"-högerklicksmeny, samt Open+Save-"FileDialog". Väldigt simpelt o kalleanka-programmerigat hursom bara som bakgrund, dessutom behövs inte mer i det här fallet.
...
Men, vad gör jag för fel/Vad fattas!? Jag kan tänka mig att man ska berätta för den att det som kommer vid dubbelklicket är just en TEXTström och att den ska till denna "RikaTextBoxen".. Gissar bara, men har ingen aning hur jag går vidare nu, känns så tråkigt om man inte kan använda programmet bara p.g.a. en sån här liten grej, men det är ju faktiskt så avgörande :-(. Dubbelklick på textfil ska öppna textfilen, inte som nu endast själva texteditorn. Hjälp!


Microsoft Visual C# 2017
Studio Community Version 15.4.1

Windows 10 Home
Version 1709 (Fall Creators Update)
OS Build 16299.192
Citera
2018-01-14, 18:23
  #2
Medlem
Citat:
Ursprungligen postat av Lemmiss
---> Gå direkt till "Problemet"/kursiv text om du inte orkar läsa mitt gnäll ;-)

Hej annars i.a.f. *wink*. Tänkte tidigare här att jag skulle ge mig på att lära mig C#. Så... som lärometod körde jag då på att skriva ett enklare, men användbart program(så det blir skoj). Det är en Texteditor, upplagd som jag alltid har velat ha den. Jag stjäl i princip lösningen. Inget copy paste rakt av, men nästan, då jag har kollat andras program och sen använt samma lösning själv. Dock kommer detta i princip färdigt som en funktion(er) i språket/editorn, och kan, om de ska användas inte göras på så många olika sätt, är mest för att jag behöver hjälp att lära in rätt syntax jag gör såhär. Jag tycker detta problem inte borde finnas egentligen, utan det borde kunna gå direkt(via OS)! Nästan så jag vill tro att detta är en bugg!(?)

Jag har nu då snickrat ihop en grundläggande texteditor som är precis som jag önskar mig att en sån ska vara. Endast Öppna, Spara, o en högerklicksmeny, finemang med bara det jag verkligen använder, och ingenting annat. En simplare texteditor än windows notes! :-). Kul med nåt man faktiskt använder... Det är bara ett problem... :-S

Problemet:
Min texteditor är vald som "default"/"Opens with.." hur mitt OS Windows 10 ska hantera *.txt vid dubbelklick. När jag dubbelklickar på en textfil laddas dock aldrig textfilens innehåll, bara själva texteditorn öppnas, men "tom". Varför är det såhär? Hur löses detta? Vilket annat program som helst laddar ju filen man dubbellklickar på om det associeras ihop med dess ändelse i OS:et.

Det är ett "windows form"-program som i huvudsak använder en "RichTextBox" där allt visas, sen en "menustrip"-menyrad högst upp, å en "menustrip"-högerklicksmeny, samt Open+Save-"FileDialog". Väldigt simpelt o kalleanka-programmerigat hursom bara som bakgrund, dessutom behövs inte mer i det här fallet.
...
Men, vad gör jag för fel/Vad fattas!? Jag kan tänka mig att man ska berätta för den att det som kommer vid dubbelklicket är just en TEXTström och att den ska till denna "RikaTextBoxen".. Gissar bara, men har ingen aning hur jag går vidare nu, känns så tråkigt om man inte kan använda programmet bara p.g.a. en sån här liten grej, men det är ju faktiskt så avgörande :-(. Dubbelklick på textfil ska öppna textfilen, inte som nu endast själva texteditorn. Hjälp!


Microsoft Visual C# 2017
Studio Community Version 15.4.1

Windows 10 Home
Version 1709 (Fall Creators Update)
OS Build 16299.192

Kan det vara så att filnamnet som du öppnar skickas som ett argument till till program, och du gör inget med det?
Citera
2018-01-21, 11:58
  #3
Medlem
Citat:
Ursprungligen postat av Lemmiss
Men, vad gör jag för fel/Vad fattas!? Jag kan tänka mig att man ska berätta för den att det som kommer vid dubbelklicket är just en TEXTström och att den ska till denna "RikaTextBoxen".. Gissar bara, men har ingen aning hur jag går vidare nu, känns så tråkigt om man inte kan använda programmet bara p.g.a. en sån här liten grej, men det är ju faktiskt så avgörande :-(. Dubbelklick på textfil ska öppna textfilen, inte som nu endast själva texteditorn. Hjälp!

Jag säger som gottisborgen ovan. Tror inte du skickar med textfilen som ett argument. Tog mig lite tid att skriva en applikation som gör det du önskar, funkar utmärkt. Det du saknar är alltså att editera Main() ungefär så här:
Kod:
        static void Main(string[] args)
        {
            string s = "";

            if (args.Length > 0)
                s = args[0]; // args[0] = full filename with path

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new TextEdit(s));
        }

...och WinForms-klassen gjorde jag så här (bara en RTbox):

Kod:
    public partial class TextEdit : Form
    {
        public TextEdit(string fileName) // argument = full name incl path of textfile
        {
            InitializeComponent();
            if (File.Exists(fileName))
                rtbText.Text = File.ReadAllText(fileName);
        }
    }
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback