#c# #devexpress
#c# #devexpress
Вопрос:
Как отобразить номер строки в заголовке дочернего элемента / внука, следуя прикрепленным файлам ниже?
Приведенный выше код работает только для gridView1_CustomDrawRowIndicator, но он не работает для дочернего события CustomDrawRowIndicator. И результатом использования этого кода является номер строки, начинающийся с 0, как сделать, чтобы он начинался с 1, как результат по этой ссылкеhttps://www.codeproject.com/Tips/835501/Master-Detail-Datagridview и https://www.codeproject.com/Tips/1215736/Master-Detail-Datagridview-in-Csharp
Нажмите здесь, чтобы показать изображение Вот результат приведенных ниже кодов:
private void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
GridView gv = (GridView)sender;
if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
{
e.Info.DisplayText = e.RowHandle.ToString();
e.Info.Appearance.Font = new Font("CordiaUPC", 12);
e.Info.Appearance.Options.UseFont = true;
e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
if (!indicatorIcon)
e.Info.ImageIndex = -2;
}
}
private void gridView2_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
GridView gv = (GridView)sender;
if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
{
e.Info.DisplayText = e.RowHandle.ToString();
e.Info.Appearance.Font = new Font("CordiaUPC", 12);
e.Info.Appearance.Options.UseFont = true;
e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
if (!indicatorIcon)
e.Info.ImageIndex = -2;
}
}
private void gridView3_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
GridView gv = (GridView)sender;
if (e.Info.IsRowIndicator amp;amp; e.RowHandle >= 0)
{
e.Info.DisplayText = e.RowHandle.ToString();
e.Info.Appearance.Font = new Font("CordiaUPC", 12);
e.Info.Appearance.Options.UseFont = true;
e.Info.Appearance.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
if (!indicatorIcon)
e.Info.ImageIndex = -2;
}
}
Я пробовал этот код, но он должен был добавлять номера строк в столбцы, но мне нужно, чтобы номер строк отображался в заголовке строки.
private void gridView1_CustomDrawCell(object sender, RowCellCustomDrawEventArgs e)
{
e.DisplayText = e.RowHandle.ToString();
}
Комментарии:
1. вы проверили эту ссылку devexpress.com/Support/Center/Question/Details/A2079 /… . Для отображения правильного индекса строки используйте e.Info.DisplayText = e.RowHandle. toString() 1;
2. Да, но customdrawcell должен добавить больше столбцов для номера строки, но я хотел показать номер строки в RowHeader.
3. Я не знаю, как показать только номер строки в заголовке без добавления несвязанного столбца. Что касается, я знаю, что мне нужно добавить несвязанный столбец.
4. все в порядке, в любом случае спасибо
5. Используйте e.info.Отображать текст. Я нашел какое-то похожее решение в службе поддержки devexpress. Я опубликовал код в ответе. Надеюсь, это может помочь.
Ответ №1:
Пожалуйста, попробуйте вот так из этой ссылки. https://www.devexpress.com/Support/Center/Question/Details/T126680/auto-row-number-in-grid
gridView1.IndicatorWidth = 30;
void gridView1_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
{
if(e.RowHandle >= 0 )
e.Info.DisplayText = e.RowHandle.ToString();
}
Комментарии:
1.это не работает i.stack.imgur.com/eFrXz.png i.stack.imgur.com/b3Lio.png
2. ДА. ваш код выглядит хорошо для меня. Это должно сработать. Я чувствую, что это связано с каким-то другим свойством для gridview. Это блокирует отображение заголовка
3. Я не вижу ничего плохого в вашем коде. Возможности, которые я вижу со своей стороны, могут быть связаны с некоторыми свойствами или типом обложки, которые вы используете. Пожалуйста, отладьте построчно и посмотрите, что ваш customdrawrowindicator выполнен и дает ожидаемый результат. Затем проверьте эту ссылку, это может помочь. devexpress.com/Support/Center/Question/Details/Q471358 /…
4. У меня есть дизайн gridview, чтобы воспроизвести проблему. Первая сетка показывает номер, а дочерний элемент — нет. В случае успеха я опубликую.
5. поскольку изменение столбцов текстового заголовка только в GridView1 и во многих GridViews, использование кода отличается, поэтому я думаю, что в этом случае это тоже самое. скин, который я использую, используется по умолчанию. (открытый частичный класс Form_Customers_List: форма)