Autor Beitrag
Ph@r@oXX
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 08:29 
Hallo ich würde gerne die aktuelle verwendete Font von meinem c# programm in einem Label anzeigen lassen ! wie bekomme ich das hin ??
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 08:39 
Hallo Ph@r@oXX

label1.Text = Font.Name;

msdn.microsoft.com/d...ont.name(VS.80).aspx

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 08:50 
user profile iconlothi hat folgendes geschrieben:
Hallo Ph@r@oXX

label1.Text = Font.Name;

msdn.microsoft.com/d...ont.name(VS.80).aspx

Gruss Lothi

Hey das hat mir schon sehr geholfen vielen Dank !!

Nur was muss ich jetzt an dem Befehl ändern das ich z.B die Font auslesen kann die gerade für einen Buttpn o.Ä verwendet wird ?? :oops: also das ich den namen von dem Objekt einteagen muss ist mir klar nur ich hab im prog radio buttons mit denen ich die schriftart ändern kann ! und wenn ich einen anderen auswähle soll die verwendete im label angezeigt werden also immer die aktuelle
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 09:46 
Hallo

Deine Zusatzfrage habe ich jetzt nicht genau verstanden.
Wie du an den Font kommst weisst du ja jetzt. Die Zuweisung an das Labelfeld machst du im gleichen ereignis wo du auch den Font des Formulars aenderst.

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 10:46 
user profile iconlothi hat folgendes geschrieben:
Hallo

Deine Zusatzfrage habe ich jetzt nicht genau verstanden.
Wie du an den Font kommst weisst du ja jetzt. Die Zuweisung an das Labelfeld machst du im gleichen ereignis wo du auch den Font des Formulars aenderst.

Gruss Lothi

Mein erstes Problem hat sich jetzt behoben ! ;)
Jetzt möchte ich aber das mein Programm, das als feste Font Calibri hat, komplett in Tahoma dargestellt wird, sollte die schriftart calibri nicht vorhanden sein. Grund Calibri ist z.B nicht unter Windows 2000 vorhanden sonder eigentlich erst ab Vista. Denn wenn Calibri nicht vorhanden ist nimmt er jetzt Microsoft san sherif und dafür soll er halt tahome nehem ?!

also kurz: wenn schriftart nicht vorhanden dann schirftart tahoma verwenden

ist das einigermaßen verständlich ? ich hoffe du kannst mir da auch helfen :)

vielen dank im voraus ;)
Th69
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Moderator
Beiträge: 4799
Erhaltene Danke: 1059

Win10
C#, C++ (VS 2017/19/22)
BeitragVerfasst: Di 19.08.08 12:27 
Einfach versuchen den Font-Namen zu setzen und danach wieder auslesen und vergleichen.
ausblenden C#-Quelltext
1:
2:
3:
4:
Font.Name = "Calibri";

if(Font.Name != "Calibri")
  Font.Name = "Tahoma";

Alternativ kann man auch in der Windows-Registry Alternativnamen definieren und diese dann auf andere Fonts setzen.

Oder aber du lieferst bei deinem Programm einfach die Schriftart mit. Mit AddFontResourceEx(...) kannst du diese dann direkt in deinem Programm einbinden und verwenden.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Di 19.08.08 12:38 
user profile iconTh69 hat folgendes geschrieben:
Oder aber du lieferst bei deinem Programm einfach die Schriftart mit. Mit AddFontResourceEx(...) kannst du diese dann direkt in deinem Programm einbinden und verwenden.

Vorher aber unbedingt prüfen, ob die Lizenz das zulässt!

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 12:39 
user profile iconTh69 hat folgendes geschrieben:
Einfach versuchen den Font-Namen zu setzen und danach wieder auslesen und vergleichen.
ausblenden C#-Quelltext
1:
2:
3:
4:
Font.Name = "Calibri";

if(Font.Name != "Calibri")
  Font.Name = "Tahoma";

Alternativ kann man auch in der Windows-Registry Alternativnamen definieren und diese dann auf andere Fonts setzen.

Oder aber du lieferst bei deinem Programm einfach die Schriftart mit. Mit AddFontResourceEx(...) kannst du diese dann direkt in deinem Programm einbinden und verwenden.

Mhh viel hilft mir das nichr !
ich dachte man könnte für das jeweilige formular einfach den standard font festlegen !

naja trotzdem vielen dank für die hilfe
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 12:55 
Hallo

Sicher kannst du den Standart Font eines Formulars festlege. In den Eigenschaften des Formulars Font eine neue Schriftart zuweisen. Diese gilt dann für das ganze Form plus die Controls bei denen du keine Aenderungen in der Fonteigenschaft machst.

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 13:08 
user profile iconlothi hat folgendes geschrieben:
Hallo

Sicher kannst du den Standart Font eines Formulars festlege. In den Eigenschaften des Formulars Font eine neue Schriftart zuweisen. Diese gilt dann für das ganze Form plus die Controls bei denen du keine Aenderungen in der Fonteigenschaft machst.

Gruss Lothi

Hey das ist genau das was ich suchen nur leider finde ich die Form eigenschaften nicht :( kannst du vllt nen kleinen screenshot machen oder so ?!

es ist quasi genau dieses problem "http://dotnetperls.com/Content/Segoe-Tahoma-Windows-Forms.aspx" aber das hilft mir auch recht wenig :(

vielen dank

Gruß Ph@r@oXX
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 13:26 
Ne tut mir Leid habe kein VS hier auf der Arbeit.

Aber im Designer von VS hast du doch die Eigenschaften von den Controls. Wenn du jetzt dein Formular auswählst hast du doch da die Font Eigenschaft.

zB:
ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Lothi.Forum
{
  class Start
  {
    public static void Main()
    {
      Application.Run(new frm());
    }
  }
  class frm : Form
  {
    Label lblSchrift;
    Button btnSchrift;
    
    public frm()
    {
       //Font dem Formular zuweisen
       Font = new Font("Arial"15f, FontStyle.Italic);
      lblSchrift = new Label();
      lblSchrift.Text = Font.Name;
      lblSchrift.Location = new Point(10,10);
      lblSchrift.AutoSize = true;
      Controls.Add(lblSchrift);
      btnSchrift = new Button();
       Formular font dem Button zuweisen.
      btnSchrift.Font = Font;      
                            btnSchrift.Location = new Point(200150);
      btnSchrift.Text = "Schriftart";
      btnSchrift.Click += new EventHandler(btnSchrift_Click);
      Controls.Add(btnSchrift);    
    }
    
    private void btnSchrift_Click(object sender, EventArgs e)
    {
      Font f = this.Font;
      if(this.Font.Name != "Arial")
        f = new Font("Arial"15f, FontStyle.Bold);
      else
        f = new Font("Comic Sans MS"15f, FontStyle.Bold);
        
      this.Font = f;
      lblSchrift.Text = Font.Name;
    }
  }
}


Wie du im Click-Ereignis siehst wird der neue Font dem Formular zugewiesen. Wobei ich das ganze über Settings machen würde.

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 13:29 
Alles klar vielen Dank !!

ja bei den objekteigenschaften hab ich das ja geändert aber sobald er z.b calibri nicht findet nimmt er ms san sherif egal ob ich die auf tahoma stehn hab oder nicht das is das problem xD !! es ist genauso wie das oben in dem link auch ist :D !!

Gruß Ph@r@oXX

Moderiert von user profile iconChristian S.: Vollständiges Zitat des vorigen Beitrags entfernt
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 13:49 
Hallo

Jetzt habe es auch ich begriffen.

ausblenden volle Höhe C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
using System;
using System.Drawing;
using System.Windows.Forms;

namespace Lothi.Forum
{
  class Start
  {
    public static void Main()
    {
      Application.Run(new frm());
    }
  }
  class frm : Form
  {
    Label lblSchrift;
    Button btnSchrift;
    
    public frm()
    {
      //Font an Formular zuweisen
      Font = new Font("Calibri"15f, FontStyle.Bold);
      FontTest();      
      
          lblSchrift = new Label();
      lblSchrift.Text = Font.Name;
      lblSchrift.Location = new Point(10,10);
      lblSchrift.AutoSize = true;
      Controls.Add(lblSchrift);
      btnSchrift = new Button();
      
      //Font an Button Zuweisen
      btnSchrift.Font = Font;
      btnSchrift.Location = new Point(200150);
      btnSchrift.Text = "Schriftart";
      btnSchrift.Click += new EventHandler(btnSchrift_Click);
      Controls.Add(btnSchrift);    
    }
    
    private void btnSchrift_Click(object sender, EventArgs e)
    {
      Font f = this.Font;
      if(this.Font.Name != "Arial")
        f = new Font("Arial"15f, FontStyle.Bold);
      else
        f = new Font("Comic Sans MS"15f, FontStyle.Bold);
        
      this.Font = f;
      lblSchrift.Text = Font.Name;
    }
    private void FontTest()
    {
      if(Font.Name != "Calibri")
      {
        Font = new Font("Comic Sans MS"15f, FontStyle.Italic);
      }
    }
    
  }
}


Wie meine Kollegen schon schrieben musst du am Anfang Testen ob der Font vorhanden ist. Wenn nein dann ein neuer zuweisen. Die Zuweisung muss zu beginn des Konstruktors geschehen so das auch alle Kontrols richtig angepasst werde.

PS: Ich habe XP und Calibri auch drauf :wink:

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Di 19.08.08 13:54 
;)Das habe ich auch wahrscheinlich hast du es so drauf gemacht oder du hast office 2007 :D !! aber okay jez klappt es
vielen dank !!

Moderiert von user profile iconChristian S.: Vollständiges Zitat des vorigen Beitrags entfernt
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Di 19.08.08 13:57 
Ne weder noch.
Ach noch etwas, da mein Beitrag ein paar Linien oberhalb deinem Beitrag ist. Brauchst du den nicht zu zitieren. Macht den Thread nur unübersichtlicher.

Gruss Lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Mi 20.08.08 09:05 
Titel: Standard font festlegen ?
Ich möchte gerne ein Programm schreiben das wenn die Schrift calibri nicht vorhanden ist (z.b auf einem win 2000 rechner) die schriftart tahoma verwendet und nich die standard schrift microsoft san serif ! ich meine das sie eigentlich mit meinem code funzen müsste tut es aber nich hab schon die auskommentierten befehle ausprobiert. oder ist an denen etwas falsch ? bin ein absoluter neuling in sachen c# also möglichst einfache erklärungen :oops:

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Fontermitteler
{
    public partial class Fontermittleler : Form
    {
        public Fontermitteler()
        {
             //this.Font = new Font("Tahoma", 16.25F, FontStyle.Regular);
            //this.Font = SystemFonts.MessageBoxFont;
            //TypeDescriptor.GetConverter(typeof(Font)).ConvertToInvariantString(new Font("Tahoma", 9F, FontStyle.Bold));
                    
            InitializeComponent();
        }

        private void label1_Click(object sender, EventArgs e)
        {
            label1.Text = test.Font.Name;

        }
    }
}


vielen Dank im voraus

Moderiert von user profile iconChristian S.: C#-Tags hinzugefügt


Zuletzt bearbeitet von Ph@r@oXX am Mi 20.08.08 09:58, insgesamt 1-mal bearbeitet
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Mi 20.08.08 09:09 
Hallo

Bin mir nicht sicher, aber haben wir das nicht schon gestern durchgekaut?
Da hast du gesagt es gehe. In deinem Beispiel ist ja nix von Gestern drin.

Gruss lothi
Ph@r@oXX Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 40



BeitragVerfasst: Mi 20.08.08 09:29 
user profile iconlothi hat folgendes geschrieben:
Hallo

Bin mir nicht sicher, aber haben wir das nicht schon gestern durchgekaut?
Da hast du gesagt es gehe. In deinem Beispiel ist ja nix von Gestern drin.

Gruss lothi

Ja hat ich weils mir zu peinlich wurd ! ich bin ein echter neuling in sachen c# bzw richtig proggn un ich glaube ich hab deinen code gestern ganz gut eingebaut aber ich glaub ich bin zu blöd dazu :oops: vllt gibt es eine lösung die so leicht ist das ich sie verstehe ?
und mit einer if kann ich das auf keinen fall machen !
lothi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 114
Erhaltene Danke: 3



BeitragVerfasst: Mi 20.08.08 10:32 
Naja wenn nicht mit if() wie willst du dann sonst eine Entscheidung treffen?
Gibt ja noch das (true) ? a : b

Also folgendes:

Das
public Fontermitteler()
{
}

In diesem Konstruktor kannst du den Font des Formulars einstellen. Dein Colibri.
So jetzt kann aber das Programm Colibri nicht finden, also nimmt es den Font aus der Systemsteuerung.
Jetzt musst du nochmals prüfen ob auch wirklich Colobri drin ist und wenn nein musst du den Tahoma neu setzen.
Genau das macht mein Beispiel von gestern.
Nimm doch generell Tahoma dann gehts überall.

So noch etwas allgemeines.
Es ist nicht nötig meinen Beitrag immer zu zitieren.

An einen Moderator: Kann man die 2 Beiträge zusammen führen.
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Mi 20.08.08 10:55 
Hallo!

Es ist absolut unerwünscht, dieselbe Frage in mehr als einem Thread zu diskutieren. Leute, die antworten wollen, dürfen dann erst in dem anderen Thread gucken, was da schon geschrieben wurde und wenn jemand mal das selbe Problem hat, darf er sich die Lösung in verschiedenen Threads zusammen suchen -> schlechte Idee!

Ich habe die Threads daher zusammen geführt und hoffe, dass sich das nicht wiederholt.

Grüße
Christian

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".