Доступное имя DataGridView

У меня есть DataGridView в форме Winforms, и, как обычно, место ограничено. Поэтому заголовки столбцов часто сокращаются («Кол-во», «Номер» и т. д.). Моя программа чтения с экрана (JAWS) обрабатывает DataGridView как таблицу и читает заголовок столбца, когда я перемещаюсь по «ячейкам» (то есть элементам управления в сетке). В идеале я хотел бы, чтобы средство чтения с экрана использовало доступное имя для заголовка, чтобы оно читало «количество» вместо «чай в очереди, почему».

Я не могу найти свойство AccessibleName для столбца или заголовка столбца. Кто-нибудь знает, где он прячется, или его просто нет?


person Blind Fury    schedule 30.12.2013    source источник
comment
@Vland Насколько я знаю, все программы чтения с экрана используют свойство AccessibleName для объявления имен обычных элементов управления, таких как текстовые поля. Например, с помощью флажка они объявляют текст флажка, если AccessibleName не определено, или AccessibleName, если оно определено. В этом случае JAWS (правильно) видит сетку как таблицу (так же, как таблицу HTML или Word) и объявляет заголовок столбца в каждом элементе управления. Этот заголовок, в свою очередь, берется из имен полей в базовом наборе данных. Это не шоу-стоппер, но было бы неплохо иметь, если бы я мог переопределить его.   -  person Blind Fury    schedule 30.12.2013


Ответы (2)


Я мало что знаю о JAWS, но если у вас есть проблема с пространством в столбцах DGV, почему бы вам не установить для свойства заголовка столбца DefaultCellStyle > WrapMode значение true, чтобы, если вы используете более одного слова в любом тексте заголовка столбца, это можно завернуть. Таким образом, вы можете использовать осмысленные имена столбцов вместо сокращений.

person Kurubaran    schedule 30.12.2013
comment
Да, но в некоторых случаях ширина столбца составляет всего пару символов, особенно если он содержит только флажок или число (максимум 4 цифры). - person Blind Fury; 30.12.2013
comment
Хорошо, я думаю, что вам нужно поэкспериментировать с JAWS, проверить его поддержку сокращенного текста, проверить, можно ли настроить его для чтения текста всплывающей подсказки, если длина текста элемента управления составляет несколько символов. - person Kurubaran; 30.12.2013
comment
@BlindFury Если у вас есть проблема с горизонтальным пространством, другим обходным путем может быть использование горизонтальной полосы прокрутки, чтобы вы могли использовать значимый текст заголовка столбца. - person Kurubaran; 30.12.2013
comment
Да, вы можете заставить JAWS (и другие программы для чтения с экрана) расширять аббревиатуры, и многие голоса SAPI в любом случае делают это, но как переводчику мне обычно нужно, чтобы они точно читали то, что находится на странице, с бородавками и всем остальным. Я думаю, что пожертвовать внешним видом ради удобочитаемости экрана — это путь вперед. Это специальное приложение только для меня и моего секретаря. Ей придется смириться с небольшим уродством! - person Blind Fury; 30.12.2013

Я не знаю, как работает JAWS, если вам просто нужно свойство с именем AccessibleName, вы можете создать новый класс DataGridView Column, наследуемый от DataGridViewTextBoxColumn

public class AccessibleDataGridViewTextBoxColumn : DataGridViewTextBoxColumn
{
    public string AccessibleName { get; set; }
}

и добавить их в свой DataGridView. Затем вы можете установить свойство с желаемым текстом в дизайнере или в своем коде.

person Vland    schedule 30.12.2013
comment
Я хотел бы попробовать это из интереса, но мне пришлось бы читать набор данных в сетку вручную, не так ли? Мне все еще нужна сетка, привязанная к DS. - person Blind Fury; 30.12.2013