[C#] SaveFileDialog - customizen m.b.v. FilterIndex

Pagina: 1
Acties:

  • Galleriassa!
  • Registratie: Juli 2000
  • Laatst online: 25-10-2022
Beste mensen,

Voor een nieuw te programmeren applicatie gebruik ik onder meer een dialoogvenster van de klasse SaveFileDialog . Nu wil ik deze graag aanpassen met een extra control, een Button om precies te zijn. De bedoeling is dat de gebruiker op deze knop kan drukken zodat een nieuw venster verschijnt waarin wat opties ingesteld kunnen worden betreft de manier waarop het bestand geSaved dient te worden. De SaveFileDialog klasse is sealed => inheriting is onmogelijk. Ook de parent van deze klasse, FileDialog, is sealed. Ik was niet van plan om zelf een nieuwe SaveFileDialog klasse te programmeren, lijkt me erg veel werk namelijk. Daarom maar ik gebruik van de HookProc procedure. Zodoende kan ik de positie van alle op de Form aanwezige controls opvragen en aan de hand daarvan mijn eigen control plaatsen. Werkt prima, erg gaaf. However, nu wil ik dat de Functies achter de button afhankelijk zijn van de door de gebruiker geselecteerde FilterIndex.

De grote vraag die daarvoor beantwoord dient te worden:
Hoe bemachtig ik de FilterIndex wanneer deze gewijzigd wordt door de gebruiker (voordat de gebruiker OK klikt)?

Waar ik al naar gekeken heb:
De OPENFILENAME struct die by reference wordt meegegeven aan GetSaveFileName() bevat weliswaar
C#:
1
 public int nFilterIndex; 
, maar die wordt niet geupdate tijdens runtime, zo blijkt.

BTW: Windows API programmeren doe ik nauwelijks, dus ik zou het waarderen wanneer in eerste instantie niet al te complex jargon wordt gebruikt. Mocht dat toch nodig zijn, niet erg, dan verdiepen we ons wat verder. Hopelijk hebben anderen er ook iets aan.

Bij voorbaat mijn dank.

Systeem:
Win XP Pro US SP 2.0
IDE: MS Visual Studio C# 2005 .Net v2.0

  • Depress
  • Registratie: Mei 2005
  • Laatst online: 24-11 21:01
Je kunt toch als partial class de klasse van SaveFileDialog aanpassen?

  • /\/\|)
  • Registratie: Juli 2000
  • Laatst online: 21-11 12:02
Depress schreef op vrijdag 16 februari 2007 @ 22:25:
Je kunt toch als partial class de klasse van SaveFileDialog aanpassen?
Nee. SaveFileDialog is niet partial.

  • Mr. Jibe
  • Registratie: Januari 2004
  • Niet online
Ik zou met reflector (http://www.aisto.com/roeder/dotnet/) eens kijken waar die index opgeslagen wordt van de SaveFileDialog. Moest dit niet publiek zijnd an kan je altijd met reflection die waarde opvragen.


grt,

Lieven

  • Galleriassa!
  • Registratie: Juli 2000
  • Laatst online: 25-10-2022
Dank voor de reply's. FilterIndex is een public set/get-Property (member van de FileDialog Klasse). Maar hoe vraag je die op voordat de gebruiker OK heeft geklikt?
Het zou wel eens kunnen dat het onderscheppen van de CDN_TYPECHANGE Notification leidt tot de juiste informatie. Ik zal eens experimenteren.

[ Voor 18% gewijzigd door Galleriassa! op 21-02-2007 11:48 ]