Laden...

Für NumericUpDown Control eine "digitale" Schrift (Font) vergeben

Erstellt von fansi vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.252 Views
F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren
Für NumericUpDown Control eine "digitale" Schrift (Font) vergeben

hallo Leute,

ich habe ein kleines Problem, ich will einem NumericUpDown Control eine Digitale Schrift vergeben, die ich in den Ressourcen liegen habe. Bei einem Label würde ich das so machen:


PrivateFontCollection pfc = new PrivateFontCollection();
byte[] fontData = Properties.Resources.DIGITALDREAMFAT;

IntPtr pbyt = Marshal.AllocCoTaskMem(fontData.Length);
try
{
        Marshal.Copy(fontData, 0, pbyt, fontData.Length);
        pfc.AddMemoryFont(pbyt, fontData.Length);

        this.lblLocation.Font = new System.Drawing.Font(pfc.Families[0], 13);
        this.lblLocation.UseCompatibleTextRendering = true;
}
finally
{
        Marshal.FreeCoTaskMem(pbyt);
}

jedoch hat das NumericUpDown die UseCompatibleTextRendering Eigenschaft nicht...

Kann mir jemand einen Tipp geben wie ich das am besten machen lösen kann?

Danke schon mal im voraus

Gruß Fansi

F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren

Kann mir denn keiner dabei Helfen? Oder ist mein Vorhanen nicht möglich?

Gruß Fansi

916 Beiträge seit 2008
vor 14 Jahren

Ich würde das Control ableiten und selber umbauen, also z.B. das OnPaint überschreiben. Dort kannst du dann selber die Zahlen zeichnen und die Digitale Schrift einsetzten.

Again what learned...

F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren

OK gibt es auch ne etwas einfachere Lösung?

Gruß Fansi

916 Beiträge seit 2008
vor 14 Jahren

Noch mal kurz zu dem UseCompatibleTextRendering, das heißt wenn du den Font einach setzt mit


this.Font = new Font(...);

würd die neue Schrift nicht dargestellt weil zum Darstellen dieser Schrift dieses UseCompatibleTextRendering benötigt wird?

Again what learned...

F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren

Ja so hab ich das mal beim Label gemacht...

Doch wie ich das bei dem Numeric... mache kann wieß ich noch nicht 🤔

916 Beiträge seit 2008
vor 14 Jahren

Das beantwortet meine Frage nicht. Was passiert wenn du den Font des NumericUpDown Controls auf den von dir gewünschten setzt? Das es beim Label klappt spielt hierbei keine Rolle, ich möcht wissen was passiert wenn du es beim NUD Control äquivalent implementierst.

Again what learned...

F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren

Achso, ja es passiert nicht das was sollte. Das NUD nimmt die Standart Font

916 Beiträge seit 2008
vor 14 Jahren

Poste mal den Code für das Label.

[edit] steht ja schon oben, sry

Again what learned...

916 Beiträge seit 2008
vor 14 Jahren

Ein Lösung wäre die so ein Teil selber zu bauen. Mit hilfe einer Textbox und einer Scrollbar. Like this


private void InitializeComponent()
{
    this.mainMenu1 = new System.Windows.Forms.MainMenu();
    this.textBox1 = new System.Windows.Forms.TextBox();
    this.vScrollBar1 = new System.Windows.Forms.VScrollBar();
    // 
    // textBox1
    // 
    this.textBox1.Font = new System.Drawing.Font("Tahoma", 18F, System.Drawing.FontStyle.Regular);
    this.textBox1.Location = new System.Drawing.Point(32, 40);
    this.textBox1.Size = new System.Drawing.Size(128, 44);
    this.textBox1.Text = "textBox1";
    // 
    // vScrollBar1
    // 
    this.vScrollBar1.Location = new System.Drawing.Point(160, 40);
    this.vScrollBar1.Maximum = 91;
    this.vScrollBar1.Size = new System.Drawing.Size(32, 36);
    this.vScrollBar1.ValueChanged += new System.EventHandler(this.vScrollBar1_ValueChanged);
    // 
    // Form1
    // 
    this.Controls.Add(this.vScrollBar1);
    this.Controls.Add(this.textBox1);
    this.Menu = this.mainMenu1;
    this.Text = "Form1";

}

private void vScrollBar1_ValueChanged(object sender, System.EventArgs e)
{
    this.textBox1.Text = this.vScrollBar1.Value.ToString();
}


Again what learned...

F
fansi Themenstarter:in
71 Beiträge seit 2008
vor 14 Jahren

Ja habe auch schon dran gedacht mir selbst was zu basteln, wollte es mit nem Label machen da kann ich dann aber leider dann selbst nichts mehr eintragen.

Die Textbox wird dann aber mit meiner Methode die Schriftart auch nicht übernehmen.

916 Beiträge seit 2008
vor 14 Jahren

Dann musst du wohl selber eine TextBox zeichnen. Das ist ja nicht so schwer. Und dort dann deine Schriftart verwenden.

Again what learned...