none
RichTextBox, как поменять белый фон на картинку RRS feed

Ответы

  • Так тут уже все составные кода для ответа на Ваш вопрос.

    private void LoadIcons()
    {
       icons = new Hashtable(3);
       icons.Add("[inf]", Properties.Resources.inf);
       icons.Add("[ok]", Properties.Resources.ok);
       icons.Add("[err]", Properties.Resources.err);
    }
    private void SetIcons()
    {
       richTextBox.ReadOnly = false;
       foreach (string icon in icons.Keys)
       {
          while (richTextBox.Text.Contains(icon))
          {
             IDataObject tmpClibboard = Clipboard.GetDataObject();
             int index = richTextBox.Text.IndexOf(icon);
             richTextBox.Select(index, icon.Length);
             Clipboard.SetImage((Image)icons[icon]);
             richTextBox.Paste();
             Clipboard.SetDataObject(tmpClibboard);
          }
       }
       richTextBox.ReadOnly = true;
    }
     
    private void richTextBox_TextChanged(object sender, EventArgs e)
    {
       SetIcons();
    }


    17 сентября 2015 г. 17:18

Все ответы

  • Вот вы вроде уже два года на форуме, а вопросы до сих пор задаёте как зелёный новичок.

    Какой язык программирования, какая платформа, какая именно GUI-библиотека?

    Я помню ваш ник, но я не помню, какие именно вопросы вы задавали раньше, по каким технологиям. И нет никакого желания выяснять, просматривая ваши предыдущие вопросы, на чём вы пишете.

    3 сентября 2015 г. 15:19
  • c#, VS 2013, FRAIMEWORK 4.5, using  стандарная библиотека.
    4 сентября 2015 г. 17:17
  • c#, VS 2013, FRAIMEWORK 4.5, using  стандарная библиотека.
    WPF или WinForms???
    4 сентября 2015 г. 17:44
  • Тоже вынужден спросить: WPF или WinForms?

    В Windows Forms установить BackgroundImage невозможно. В WPF это легко.

    Можно в WinForms захостить компонент из WPF.

    4 сентября 2015 г. 18:08
  • Для WinForms

    private void SetIcons()
    {
       richTextBox.ReadOnly = false;
       foreach (string icon in icons.Keys)
       {
          while (richTextBox.Text.Contains(icon))
          {
             IDataObject tmpClibboard = Clipboard.GetDataObject();
             int index = richTextBox.Text.IndexOf(icon);
             richTextBox.Select(index, icon.Length);
             Clipboard.SetImage((Image)icons[icon]);
             richTextBox.Paste();
             Clipboard.SetDataObject(tmpClibboard);
          }
       }
       richTextBox.ReadOnly = true;
    }
     
    private void richTextBox_TextChanged(object sender, EventArgs e)
    {
       SetIcons();
    }
    но если фон у иконки прозрачный, то в WinForms закрасит его фоном приложения, поэтому лучше все таки WPF да и проще, или иконку без прозрачного фона.

    • Помечено в качестве ответа avrudoi 5 сентября 2015 г. 13:53
    • Снята пометка об ответе avrudoi 6 сентября 2015 г. 12:53
    5 сентября 2015 г. 9:18
  • Извените что раньше времени сказал Спасибо но я не до конца понял код, я выше  спросил то что непонятно. я использую winform с#. Можно показать код с использованием OpenFileDialog

    • Изменено avrudoi 6 сентября 2015 г. 13:15
    5 сентября 2015 г. 13:53
  • а что означает эта строка кода

    подскажите как использовать OpenFileDialog

      foreach (string icon in icons.Keys)
       {

     
    6 сентября 2015 г. 12:55
  • а что означает эта строка кода

    подскажите как использовать OpenFileDialog

      foreach (string icon in icons.Keys)
       {

     

    Это перебор, как пример,

    private void LoadIcons()
    {
       icons = new Hashtable(3);
       icons.Add("[inf]", Properties.Resources.inf);
       icons.Add("[ok]", Properties.Resources.ok);
       icons.Add("[err]", Properties.Resources.err);
    }

    Используйте так OpenFileDialog.

    P.S.

    Но второй вопрос подразумевает открытие новой темы, один вопрос одна тема.

     

    • Изменено AlexFV 6 сентября 2015 г. 13:14
    6 сентября 2015 г. 13:09
  • не тему я создовал  но модераторы из "гречки" ее почистили. Жаль что вы подразумеваете тенучку, я же немогу задовать вопрос на ваш ответ.
    • Изменено avrudoi 6 сентября 2015 г. 14:03
    6 сентября 2015 г. 14:00
  • а что означает эта строка кода

    подскажите как использовать OpenFileDialog

      foreach (string icon in icons.Keys)
       {

     

    Это перебор, как пример,

    private void LoadIcons()
    {
       icons = new Hashtable(3);
       icons.Add("[inf]", Properties.Resources.inf);
       icons.Add("[ok]", Properties.Resources.ok);
       icons.Add("[err]", Properties.Resources.err);
    }

    Используйте так OpenFileDialog.

    P.S.

    Но второй вопрос подразумевает открытие новой темы, один вопрос одна тема.

     

    может подскажите код в комплекте с ответом на мой вопрос.
    6 сентября 2015 г. 18:47
  • Так тут уже все составные кода для ответа на Ваш вопрос.

    private void LoadIcons()
    {
       icons = new Hashtable(3);
       icons.Add("[inf]", Properties.Resources.inf);
       icons.Add("[ok]", Properties.Resources.ok);
       icons.Add("[err]", Properties.Resources.err);
    }
    private void SetIcons()
    {
       richTextBox.ReadOnly = false;
       foreach (string icon in icons.Keys)
       {
          while (richTextBox.Text.Contains(icon))
          {
             IDataObject tmpClibboard = Clipboard.GetDataObject();
             int index = richTextBox.Text.IndexOf(icon);
             richTextBox.Select(index, icon.Length);
             Clipboard.SetImage((Image)icons[icon]);
             richTextBox.Paste();
             Clipboard.SetDataObject(tmpClibboard);
          }
       }
       richTextBox.ReadOnly = true;
    }
     
    private void richTextBox_TextChanged(object sender, EventArgs e)
    {
       SetIcons();
    }


    17 сентября 2015 г. 17:18