我正在編寫一個程序,開始時需要一定數量的文本行,爲此我使用TextBox
。爲了使程序看起來不錯,我在窗體上放置了一個背景圖像。現在我不希望TextBox
在圖像上放置一個大白塊,因此我使TextBox
具有透明背景。但問題在於:只要我開始在TextBox
中放置文本,帶有文本的行將恢復到我不想要的白色背景。那麼我怎樣才能阻止我的程序做到這一點?當在文本框中輸入文本時,保持背景恆定
我不能發表圖片,所以我就用鏈接:
此圖片顯示的背景,因爲我有它,我多麼希望它是:
此圖像顯示會發生什麼,當我開始打字:
我希望背景只是保持不變,同時I型(當然,文本顏色應該那麼b更輕,但textbox.forecolor似乎沒有效果。
所以下面是我到目前爲止的代碼,我希望你能幫助我,我還是很新的這:)
public class NieuwSpel : Form
{
Label spelerslijst, nummer;
TextBox spelersInput, spelnr;
Button OK;
public NieuwSpel()
{
this.BackgroundImage = WeerwolvenvanWakkerdam.Properties.Resources.Background_NieuwSpel;
this.FormBorderStyle = FormBorderStyle.Fixed3D;
spelerslijst = new Label();
spelerslijst.Location = new Point(10, 10);
spelerslijst.Text = "Voer hier de spelerslijst in:";
spelerslijst.Width = 200;
spelerslijst.BackColor = Color.Transparent;
spelerslijst.ForeColor = Color.White;
this.Controls.Add(spelerslijst);
spelersInput = new CustomTextBox();
spelersInput.Location = new Point(10, 40);
spelersInput.Size = new Size(200, 300);
spelersInput.Multiline = true;
spelersInput.BackColor = Color.FromArgb(100, 100, 100, 100);
spelersInput.ForeColor = Color.White;
spelersInput.GotFocus += this.setColour;
this.Controls.Add(spelersInput);
OK = new Button();
OK.Text = "Start Spel!";
OK.Location = new Point(110, 430);
OK.Click += this.Start;
this.Controls.Add(OK);
nummer = new Label();
nummer.Text = "Spelnummer:";
nummer.Width = 75;
nummer.Location = new Point(10, 360);
nummer.BackColor = Color.Transparent;
nummer.ForeColor = Color.White;
this.Controls.Add(nummer);
spelnr = new CustomTextBox();
spelnr.Width = 50;
spelnr.Height = 20;
spelnr.Location = new Point(90, 360);
spelnr.BackColor = Color.FromArgb(100, 100, 100, 100);
spelnr.ForeColor = Color.White;
this.Controls.Add(spelnr);
}
public void setColour(object o, EventArgs ea)
{
((CustomTextBox)o).BackColor = Color.FromArgb(100, 100, 100, 100);
}
}
public partial class CustomTextBox : TextBox
{
public CustomTextBox()
{
SetStyle(ControlStyles.SupportsTransparentBackColor |
ControlStyles.OptimizedDoubleBuffer |
ControlStyles.AllPaintingInWmPaint |
ControlStyles.ResizeRedraw |
ControlStyles.UserPaint, true);
}
}
這是一個Windows窗體應用程序,WPF,還是什麼? –
我開始了一個空的項目,並且自己編寫了所有的代碼,但是正如上面的代碼所說'NieuwSpel:Form'我猜這是一個表單應用程序,而不是WPF或其他東西。 – RoelofJ
對不起,你失去了我在「NieuwSpel」:-)。如果將適當的標籤添加到問題中,您會得到更好的答案。 –