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
Kann mir denn keiner dabei Helfen? Oder ist mein Vorhanen nicht möglich?
Gruß Fansi
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...
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...
Ja so hab ich das mal beim Label gemacht...
Doch wie ich das bei dem Numeric... mache kann wieß ich noch nicht 🤔
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...
Achso, ja es passiert nicht das was sollte. Das NUD nimmt die Standart Font
Poste mal den Code für das Label.
[edit] steht ja schon oben, sry
Again what learned...
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...
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.
Dann musst du wohl selber eine TextBox zeichnen. Das ist ja nicht so schwer. Und dort dann deine Schriftart verwenden.
Again what learned...