【发布时间】:2020-11-23 07:07:40
【问题描述】:
我正在编写应用程序,其中一部分是打开的文本框。当文本框打开时,我想要深色背景。
我查看了解决方案并在这里找到了它: Creating a dark background when a new form appears
但是,它不适合我。
这是我的代码:
private void App_Load(object sender, EventArgs e)
{
this.Text = "TestApp";
this.Size = new Size(350, 250);
this.BackColor = Color.DarkGray;
this.Location = new Point(50, 50);
this.MaximizeBox = false;
TextBox.BackColor = Color.WhiteSmoke;
TextBox.Multiline = true;
TextBox.Size = new Size(200, 90);
Button.Text = "Search";
Bitmap bmp = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height);
using (Graphics G = Graphics.FromImage(bmp))
{
G.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver;
G.CopyFromScreen(this.PointToScreen(new Point(0, 0)), new Point(0, 0), this.ClientRectangle.Size);
double percent = 0.60;
Color darken = Color.FromArgb((int)(255 * percent), Color.Black);
using (Brush brsh = new SolidBrush(darken))
{
G.FillRectangle(brsh, this.ClientRectangle);
}
}
using (Panel p = new Panel())
{
p.Location = new Point(0, 0);
p.Size = this.ClientRectangle.Size;
p.BackgroundImage = bmp;
this.Controls.Add(p);
p.BringToFront();
// display your dialog somehow:
Form frm = new Form();
frm.StartPosition = FormStartPosition.Manual;
frm.ShowDialog(this);
}
}
我收到这个:
也许,有人可以指出我的错误在哪里?
编辑:我找到了解决方案,问题还不够清楚。
【问题讨论】:
-
您能解释一下您希望它是什么样子吗?
-
文本框打开,背景变暗。
-
但是你的图片似乎表明这已经有效了。
-
所有显示,我的意思是。
-
那么你需要一个窗口延伸到整个显示器