webForumDet fria alternativet

Vertikal Text

.NETur .NET

5 svar · 215 visningar · startad av saw

Medlem sedan mars 20011 880 inlägg
Frågan#1

Jag hittade detta exemplet på Microsoft men får det inte att fungera.

private void vertikalText()
		{
			string text = "Vertical text";

			FontFamily fontFamily = new FontFamily("Lucida Console");
			Font font = new Font(
				fontFamily,
				14,
				FontStyle.Regular,
				GraphicsUnit.Point);
			PointF pointF = new PointF(40, 10);
			StringFormat stringFormat = new StringFormat();
			SolidBrush solidBrush = new SolidBrush(Color.FromArgb(255, 0, 0, 255));

			stringFormat.FormatFlags = StringFormatFlags.DirectionVertical;

			e.Graphics.DrawString(text, font, solidBrush, pointF, stringFormat);
		}

Error:

E:\C#\SawData\Saw\frmSAW.cs(759): The type or namespace name 'e' could not be found (are you missing a using directive or an assembly reference?)

Någon som har ett tips på att lösa detta?

Medlem sedan maj 20021 466 inlägg
#2

Lägg koden i formulärets Paint-händelse.

Medlem sedan okt. 2002188 inlägg
#3

Vad är e?

Du saknar en instans av e.

/w

Medlem sedan mars 20011 880 inlägg
#4

Tack, det fungerade kanonfint.
Men om jag nu istället ville ha in denna kod i en label, för att få bakgrund färg, hur gör jag då??
Jag har denna kod, som färgar bakgrunden i två olika färger, hur skall jag stoppa in ovanstående?

public class cuteLabel : System.Windows.Forms.Label
	{
		private Color m_color1 = Color.LightGreen; // first color
		private Color m_color2 = Color.DarkBlue;  // second color
		private int m_color1Transparent = 64; // transparency degree 
		// (applies to the 1st color)
		private int m_color2Transparent = 64; // transparency degree 
		//  (applies to the 2nd color)

		public Color cuteColor1
		{
			get { return m_color1; }
			set { m_color1 = value; Invalidate(); }
		}

		public Color cuteColor2
		{
			get { return m_color2; }
			set { m_color2 = value; Invalidate(); }
		}

		public int cuteTransparent1
		{
			get { return m_color1Transparent; }
			set { m_color1Transparent = value; Invalidate(); }
		}

		public int cuteTransparent2
		{
			get { return m_color2Transparent; }
			set { m_color2Transparent = value; Invalidate(); }
		}

		public cuteLabel()
		{
		}

		protected override void OnPaint(PaintEventArgs pe)
		{
			// Calling the base class OnPaint
			base.OnPaint(pe);
			// Create two semi-transparent colors
			Color c1 = Color.FromArgb
				(m_color1Transparent , m_color1);
			Color c2 = Color.FromArgb
				(m_color2Transparent , m_color2);
			Brush b = new System.Drawing.Drawing2D.LinearGradientBrush
				(ClientRectangle, c1, c2, 10);
			pe.Graphics.FillRectangle (b, ClientRectangle);
			b.Dispose();
		}

	}
Medlem sedan juni 20022 599 inlägg
#5

hur skall jag stoppa in ovanstående?

På samma sätt som när du skapade egna klasser som ärvde av ListBox och ComboBox:

http://www.webforum.nu/showthread.php?s=&threadid=75273

http://www.webforum.nu/showthread.php?s=&threadid=73572

(Jag vet att du inte gillar det, men lablar är faktiskt lättare.)

Medlem sedan mars 20011 880 inlägg
#6

Efter lite TV-tittande, och grunnande så tror jag att jag börjar att fatta.
Jag lär väll återkomma tror jag :birp

136 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)