изменить ForeColor формы - PullRequest
       24

изменить ForeColor формы

0 голосов
/ 25 января 2010

Как изменить ForColor формы, установив ForeColor в КРАСНЫЙ, но форма по-прежнему отображается в Whte Text.Как мне это изменить.
Я ссылаюсь на заголовок Цвет текста

Ответы [ 3 ]

3 голосов
/ 25 января 2010

Строка заголовка является «не клиентской» областью формы. Неклиентская область формы управляется Windows API, а не .NET. Его нельзя изменить, установив какое-либо свойство в форме. Чтобы изменить цвет текста в строке заголовка, вам нужно сделать пользовательскую роспись. Поищите в Google такие термины, как: рисование win-области за пределами области клиента. Вам нужно было бы сделать вызовы Win32 API напрямую, чтобы это работало. Вы можете получить некоторые идеи здесь: http://geekswithblogs.net/kobush/articles/CustomBorderForms.aspx и http://customerborderform.codeplex.com/wikipage?title=Painting%20NonClient%20Area&referringTitle=Home

Это было проще сделать в тот день (то есть, когда не было .NET), поскольку мы напрямую использовали Win32 API. Я сделал это, для удовольствия. И с тех пор я узнал, что такие вещи хороши для обучения ; ИМО Я настоятельно рекомендую вам не «злоупотреблять» этим, поместив его в «реальное» приложение. Windows имеет определенный внешний вид, и этот внешний вид должен находиться под контролем пользователя, а не разработчика.

1 голос
/ 25 января 2010

Привет, если вы хотите изменить текст элементов управления формы, вы должны установить свойство ForeColor для всех дочерних элементов управления, меток, флажков, текстовых полей и т. Д. Отдельных. ForeColor форм будет влиять только на элементы управления, созданные после изменения цвета форм.

1 голос
/ 25 января 2010

Я не уверен, что вы пытаетесь сделать. ForeColor меняет цвет для дочерних элементов управления в форме. Вот пример использования для ForeColor и для записи в форме Windows. Обратите внимание, что свойство Form ForeColor не используется при записи непосредственно в форму через объект Graphics ... Поместите кнопку в форму и поместите код в обработчик событий ...

private void button1_Click(object sender, EventArgs e)
    {
        this.ForeColor = System.Drawing.Color.Red;
        using (Graphics g = this.CreateGraphics())
        {
            Brush b = new SolidBrush(System.Drawing.Color.Blue);
            g.DrawString("SAMPLE TEXT", SystemFonts.CaptionFont, b, new PointF(50, 50));
            b.Dispose();
        }
    }
...