2017-05-31 54 views
0

我正在WinForms應用程序中工作。在我的場景中,我需要在調整單元格矩形大小時在最後一個字符的開始位置隱藏文本。我可以通過從第一個字符中刪除字符並在矩形中繪製字符來解決此問題。是否可以在單元格矩形中部分繪製字符?

現在我需要在調整單元格矩形大小時部分地繪製字符。請參閱附件圖片。例如,單元格值爲「20.229.88」,在調整大小後單元格值應爲「0.229.88」,但「0」應顯示爲部分。

enter image description here

請人幫我,如果這是可能的。

在此先感謝。

+0

你可以發佈你使用的代碼嗎?假設它是GDI繪圖(來自您的標籤),您可以將StringFormat設置爲將文本與繪製矩形對齊。 – James

+0

如果您隱藏的文本總是採用相同的格式,您可以嘗試在其前面放置某些內容以隱藏不需要的部分 - 請考慮一個窗口,在該窗口中玻璃顯示您想要查看的位和框架和牆壁隱藏其餘部分。無可否認,在實踐中,這可能很難做到...... – Gareth

+0

嗨@詹姆斯,這裏是代碼,我用來隱藏開始處的文本'string text = e.DisplayText; SizeF size1 = e.Graphics.MeasureString(text,new Font(e.Style.Font.Facename,e.Style.Font.Size)); 而(!e.TextRectangle.Contains(新的Rectangle(e.TextRectangle.Location,新的大小((INT)size1.Width,(INT)size1.Height)))){ 文本 = text.Remove(0, 1); size1 = e.Graphics.MeasureString(text,new Font(e.Style.Font.Facename,e.Style.Font.Size)); } e.DisplayText = text;' – Prithiv

回答

1

您可以將StringFormat對象傳遞給DrawString方法,該方法將文本設置爲在矩形內右對齊,然後左側被切斷。

var sf = new StringFormat(StringFormatFlags.NoWrap); 
sf.Alignment = StringAlignment.Far; 
sf.Trimming = StringTrimming.None; 

e.Graphics.DrawString("my text", this.Font, Brushes.Blue, new RectangleF(10,0,120,20), sf); 
+0

嗨@詹姆斯,非常感謝你。它的工作正常 – Prithiv