Hallo Gemeinde,
ich habe folgendes Problem. Ich habe eine kleine Tray App erstellt, die für jeden Tag eine andere (außer fr-so) pdf datei anzeigen soll.
Ich finde den Tag so raus:
private string akt_tag;
private string anz_tag;
public string anz_url;
#region Um aktuellen Tag + URL rauszufinden
if (DateTime.Today.DayOfWeek == DayOfWeek.Monday)
{
akt_tag = "Montag";
anz_tag = "dienstag";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Tuesday)
{
akt_tag = "Dienstag";
anz_tag = "mittwoch";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Wednesday)
{
akt_tag = "Mittwoch";
anz_tag = "donnerstag";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Thursday)
{
akt_tag = "Donnerstag";
anz_tag = "freitag";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Friday)
{
akt_tag = "Freitag";
anz_tag = "montag";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Saturday)
{
akt_tag = "Samstag";
anz_tag = "montag";
}
if (DateTime.Today.DayOfWeek == DayOfWeek.Sunday)
{
akt_tag = "Sonntag";
anz_tag = "montag";
}
anz_url = "http://abc.de/" + anz_tag + ".pdf";
beschr = ("Heute ist: " + akt_tag + ". " + "Angezeigt wird für: " + anz_tag + ". " + "(unter folgender Adresse: " + anz_url + ")");
#endregion
also kommt bei anz_url für Samstag folgendes raus: "http://abc.de/montag.pdf"
Wie kann ich das ganze in meiner Form anzeigen lassen.
Ich habe momentan folgendes:
this.axAcroPDF1 = new AxAcroPDFLib.AxAcroPDF();
((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).BeginInit();
//
// axAcroPDF1
//
this.axAcroPDF1.Enabled = true;
this.axAcroPDF1.Location = new System.Drawing.Point(3, 16);
this.axAcroPDF1.Name = "axAcroPDF1";
this.axAcroPDF1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axAcroPDF1.OcxState")));
this.axAcroPDF1.Size = new System.Drawing.Size(720, 494);
this.axAcroPDF1.TabIndex = 0;
this.axAcroPDF1.LoadFile(anz_url);
((System.ComponentModel.ISupportInitialize)(this.axAcroPDF1)).EndInit();
Im debuggermodus kommt jetzt folgender Fehler:
System.TypeInitializationException wurde nicht behandelt.
Message: Der Typeninitialisierer für "meinNamespace.NotifyApp" hat eine Ausnahme verursacht.
Schon mal Danke im Vorraus für Lösungsvorschläge.
MAK
Hallo makuser,
Message: Der Typeninitialisierer für "meinNamespace.NotifyApp" hat eine Ausnahme verursacht.
Das heißt, das eine Exception im statischen Konstruktor (= Typinitialisierer) von NotifyApp aufgetreten ist.
Darauf hättest du im Übrigen auch selber kommen können: [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen).
Was machst du denn dort?
In den Typinitialisierer braucht man wirklich nur sehr selten etwas zu schreiben.
Längerer Code ist dort sowieso fehl am Platze.
Wo soll ich denn dann:
this.axAcroPDF1.LoadFile(anz_url);
hinschreiben???
Hallo,
ich bin mir nicht sicher ob der Adobe Reader eine Url so laden kann - das könnte ein Problem sein.
Daher würde ich das System.Windows.Forms.WebBrowser-Control verwenden und per Navigate(...) zur Url navigieren.
mfG Gü
PS: Anstatt deiner if-Abfragen könntest du auch ein switch verwenden.
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
PS: Anstatt deiner if-Abfragen könntest du auch ein switch verwenden.
weder noch.
nimm lieber das da:
string todaysDayOfWeek = string.Empty;
string displayedDayOfWeek = string.Empty;
DateTime today = DateTime.Today;
todaysDayOfWeek = DateTime.Today.ToString("dddd", CultureInfo.CurrentCulture);
displayedDayOfWeek = (int)today.DayOfWeek < 5
?
today.AddDays(1).ToString("dddd", CultureInfo.CurrentCulture)
:
today.AddDays(7 - (int)today.DayOfWeek).ToString("dddd", CultureInfo.CurrentCulture);
Wo soll ich denn dann [...] hinschreiben???
Im Typinitialisierer hast du normalerweise keinen Zugriff auf this
.
Er sieht (von der Syntax her) wie folgt aus:
public class Foo
{
//Typinitialisierer
static Foo()
{
}
}
@JAck30lena:
leider möchte ich aber von mo-do den nächsten tag anzeigen und von fr-so montag anzeigen. Zusätzlich möchte ich aber nicht z.B. "Mitwoch" ausgegeben haben, sondern "mitwoch" also alles klein.
Eigentlich möchte ich ja nur einen ganz bestimmten Text in der PDF anzeigen und es soll auch keine Nav-Bar und die Symbolleiste verfügbar sein.
MAK
@JAck30lena:
leider möchte ich aber von mo-do den nächsten tag anzeigen und von fr-so montag anzeigen. und was macht denn deiner meinung nach der code?
Zusätzlich möchte ich aber nicht z.B. "Mitwoch" ausgegeben haben, sondern "mitwoch" also alles klein.
schon mal mit string.ToLower() bekanntschaft gemacht?
probier den code doch einfach mal aus.
das geht aber nich
private string akt_tag = string.Empty;
private string anz_tag = string.Empty;
#region Um aktuellen Tag + URL rauszufinden
DateTime today = DateTime.Today;
akt_tag = DateTime.Today.ToString("dddd", CultureInfo.CurrentCulture);
anz_tag = (int)today.DayOfWeek < 5
?
today.AddDays(1).ToString("dddd", CultureInfo.CurrentCulture)
:
today.AddDays(7 - (int)today.DayOfWeek).ToString("dddd", CultureInfo.CurrentCulture);
anz_url = "http://www.humboldt.we.th.schule.de.de/" + anz_tag.ToLower + ".pdf";
beschr = ("Heute ist: " + akt_tag + ". " + "Angezeigt wird für: " + anz_tag + ". " + "(unter folgender Adresse: " + anz_url + ")");
#endregion
Fehler 1 Der Operator "+" kann nicht auf Operanden vom Typ "string" und "Methodengruppe" angewendet werden. E:\Visual Studio 2008\Projects\Vertretungsplanprogramm\Vertretungsplanprogramm\Anzeige.cs 41 23 Vertretungsplanprogramm
Hallo makuser,
man sollte Code nicht blind kopieren. Außerdem ist der Fehler trivial. Siehe [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen). Der konkrete Fehler kommt meistens, wenn man die Klammern bei einem Methodenaufruf ohne Parameter vergessen hat. So auch hier. Es ist deine Aufgabe, sowas selbst zu beheben.
herbivore
Ich habe nur das kopiert, um den akt. tag rauszufinden und den von morgen und so.
das auch nur durch ne aufforderung.
edit: aber ich habe ihn jetzt. is schon peinlich der fehler
Jetzt habe ich immernoch das Problem, dass ich eine PDF anzeigen möchte, die online ist.
Mit dem browser plugin würde es funktionieren, aber ich kann die ganzen Leisten nich ausblenden.
was kann ich machen???
gibt es eine Möglichkeit, dass in dem Moment, in dem die Form angezeigt wird, die Datei aus dem Inet geladen wird, und dann angezeigt wird??
Welche Schaltflächen meinst du ?
Die von Adobe kannst du einfach ausblenden lassen (z.B. F8 für die obere Leiste).
Hier musst du aber aufpassen, ich vermute diese Einstellung gilt nicht nur für eine einzelne Datei.
Sicher kannst du die Datei auch runterladen, aber ich vermute, die Leisten wirst du weiterhin sehen, da dies, wie gesagt, eine Adobe Reader Einstellung ist.
Lion
lg Lion
gibt es eine Möglichkeit, dass in dem Moment, in dem die Form angezeigt wird, die Datei aus dem Inet geladen wird, und dann angezeigt wird??
Wenn dir das Adobe Steuerelement nicht flexibel genug ist, gibt es auch einige Komponenten von Drittanbietern - die sind dann aber sicherlich nicht gerade billig.
ok angenommen ich nehme das browserplugin, wie kann ich dann die navbar(linke leiste) ausblenden???
ich könnte ja den key "F8" senden, und damit die obere leiste ausblenden.
MAK
Die Linke kannst du mit Rechte Maustaste ausblenden (einfach links auf die NavBar rechte Maustaste, dann gibt es den Menüpunkt ausblenden).
Aber wie gesagt, dass sind Programmweite Einstellungen bzw. sollte sich der Benützer selbst überlegen, ob er diese haben möchte oder nicht. Mir kommt z.B. kein Programm auf den Rechner, der mir Einstellungen verändert und ich diese manuell zurückstellen muss.
Einfach mal so was abstellen ohne eine Info oder ähnliches finde ich gar nicht gut.
Oder darf ich dir ein Programm senden, dass dir deine Word-, Outlook- und noch ander Einstellungen verändert? Einfach so? 😃
Lion
lg Lion
nein.
so is es nich.
ICh habe eine Form.
Die zeigt mir für meine schule den Vertretungsplan für den nächsten tag an.
Ich will nur in der einen Form die leisten ausblenden.
Ich hab sowas schon mal geschrieben (für meine alte Schule), aber da war es mit nem SQL server gelöst. Hier geht das nich.
Es is definitif kein Hackerprog., welches irgendwelche Einstellungen im IE, FF oder so verändert!!!!
Also die Form soll erscheinen, wenn die navbar und so ausgeblendet is.
Danke
MAK
also...
keiner eine Idee???
man könnte die datei ja temporär runterladen und anzeigen, dann warten bis die Form geschlossen wird, und dann wieder löschen.
Aber solche aktionen würde jedes ANTIVIREN Prog anzeigen, weil es kein richtiges Programm mit gültiger Signatur is.
MAK
Welches Problem hast du den noch?
Es ist wohl egal, ob du die Datei direkt anzeigst oder runter lädst, das "Problem" mit den verschiedenen Leisten hast du dennoch, egal ob runter geladen oder nicht.
Lion
lg Lion
doch wenn's lokal is dann kann ich ja
this.PDFVIEW1_oder_so.setNavbar = true
schreiben.
MAK
Dann such dir ein Control, dass PDFs anzeigen kann und eben diese Eigenschaft unterstützt. 😃
lg Lion