Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RichTextBox заменить текст / 3 сообщений из 3, страница 1 из 1
16.04.2015, 12:10
    #38938150
yardie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RichTextBox заменить текст
Привет всем!)
в wpf приложении использую System.Windows.Forms.RichTextBox(), ибо с ним вроде как работать легче.
загружаю документ в RichTextBox, делаю Replace, проверяю var s = rtb.Text; - изменений нет....
может быть не так проверяю? или не правильно что-то делаю, но когда пускаю документ на печать - выдает вообще пустой лист...

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
System.Windows.Forms.RichTextBox rtb;
        private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            var directory = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);
            var file = System.IO.Path.Combine(directory, "contractText.rtf");

            rtb = new System.Windows.Forms.RichTextBox();
            rtb.LoadFile(file);
            rtb.Text.Replace("idContract", IdContractglob.ToString());
            rtb.Text.Replace("date", dateFrom);
            rtb.Text.Replace("FIOSOB", tbFIOSOB.Text);
            rtb.Text.Replace("SerNomPassportSOB", tbSerNomPassportSOB.Text);
            rtb.Text.Replace("KemVadanDataSOB", tbKemVadanDataSOB.Text);
 
            var s = rtb.Text;// вот тут смотрю, текст без замены отображает

            PrintDialog printDialog = new PrintDialog();
            PrintDocument documentToPrint = new PrintDocument();
            if (printDialog.ShowDialog() == true)
            {
                StringReader reader = new StringReader(rtb.Text);
                documentToPrint.PrintPage += new PrintPageEventHandler(DocumentToPrint_PrintPage);
                documentToPrint.Print();
            }
        }

        private void DocumentToPrint_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            rtb = new System.Windows.Forms.RichTextBox();
            StringReader reader = new StringReader(rtb.Text);
            float LinesPerPage = 0;
            float YPosition = 0;
            int Count = 0;
            float LeftMargin = e.MarginBounds.Left;
            float TopMargin = e.MarginBounds.Top;
            string Line = null;
            Font PrintFont = this.rtb.Font;
            SolidBrush PrintBrush = new SolidBrush(System.Drawing.Color.Black);

            LinesPerPage = e.MarginBounds.Height / PrintFont.GetHeight(e.Graphics);

            while (Count < LinesPerPage && ((Line = reader.ReadLine()) != null))
            {
                YPosition = TopMargin + (Count * PrintFont.GetHeight(e.Graphics));
                e.Graphics.DrawString(Line, PrintFont, PrintBrush, LeftMargin, YPosition, new StringFormat());
                Count++;
            }

            if (Line != null)
            {
                e.HasMorePages = true;
            }
            else
            {
                e.HasMorePages = false;
            }
            PrintBrush.Dispose();
        }
...
Рейтинг: 0 / 0
16.04.2015, 12:29
    #38938174
buser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RichTextBox заменить текст
yardie, надеюсь уже разобрались как работает String.Replace?
...
Рейтинг: 0 / 0
16.04.2015, 12:39
    #38938190
yardie
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RichTextBox заменить текст
buser,

хмм, точно))))
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / RichTextBox заменить текст / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]