shimaa010 Ответов: 4

как распечатать datagridview справа налево


всем привет
я хочу распечатать datagridview справа налево
большинство классов в интернете печатают datagridview слева направо
я пытаюсь сделать свойство righttoleft да, но не изменить и практическое руководство напечатано слева направо
может ли кто-нибудь помочь мне
спасибо

4 Ответов

Рейтинг:
1

Kenneth Haugland

Думаю, вы могли бы просто установить Flowdirection="RightToLeft":
http://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid.aspx[^]

Но вам, вероятно, нужно зафиксировать выравнивание на отдельных ячейках:
http://stackoverflow.com/questions/4177668/changing-flowdirection-of-a-cell-in-wpfs-datagrid[^]


Рейтинг:
1

Al Hizbul

Это может вам помочь...
кликните сюда


shimaa010

спасибо за помощь но этот пример с использованием vb и я использовал c#

Рейтинг:
1

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Пожалуйста проходите Еще Один Элемент Принтера[^]. Скачать приложение файл PDF[^]. Вы получите все там. Также поиграйте с исходными кодами в статье.

Также проверить Как RTL-печать Datagridview.?[^] для правильных решений в соответствии с вашими требованиями.

Спасибо...


Рейтинг:
0

Ahmed Mandur

Привет,

если ты не можешь этого сделать . я пришлю вам свой полный код, который печатается справа налево
1 - Замените код, который рисует столбцы, этим кодом.

//Draw Columns                 
for (int i = GridViewID.Columns.Count - 1; i >= 0; i--)
                                {
                                    e.Graphics.FillRectangle(new SolidBrush(Color.LightGray),
                                     new Rectangle((int)arrColumnLefts[iCount], iTopMargin,
                                     (int)arrColumnWidths[iCount], iHeaderHeight));

                                    e.Graphics.DrawRectangle(Pens.Black,
                                        new Rectangle((int)arrColumnLefts[iCount], iTopMargin,
                                        (int)arrColumnWidths[iCount], iHeaderHeight));

                                    e.Graphics.DrawString("  " + GridViewID.Columns[i].HeaderText, GridViewID.Columns[i].InheritedStyle.Font,
                                        new SolidBrush(GridViewID.Columns[i].InheritedStyle.ForeColor),
                                        new RectangleF((int)arrColumnLefts[iCount], iTopMargin,
                                        (int)arrColumnWidths[iCount], iHeaderHeight), strFormat);
                                    iCount++;

                                }




2 - Замените код, который рисует ячейки, на этот код
//Draw Columns Contents
for (int i = GridRow.Cells.Count - 1; i >= 0; i--)
                            {
                                if (GridRow.Cells[i].Value != null)
                                {
                                    e.Graphics.DrawString("  " + GridRow.Cells[i].Value.ToString(), GridRow.Cells[i].InheritedStyle.Font,
                                                new SolidBrush(GridRow.Cells[i].InheritedStyle.ForeColor),
                                                new RectangleF((int)arrColumnLefts[iCount], (float)iTopMargin,
                                                (int)arrColumnWidths[iCount], (float)iCellHeight), strFormat);
                                }
                                //Drawing Cells Borders
                                e.Graphics.DrawRectangle(Pens.Black, new Rectangle((int)arrColumnLefts[iCount],
                                        iTopMargin, (int)arrColumnWidths[iCount], iCellHeight));

                                iCount++;
                            }


Жаль, что это не может вам помочь.

С уважением,
А. Мандур