| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Разработка Windows Forms > Несколько ссылок в одной ячейке DataGridView |
| Автор: NikotiN 28.10.2008, 07:47 |
| Доброе утро. вот понадобилось, чтобы в одной ячейке было несколько ссылок через запятую. Такое вроде бы нельзя сделать в стандартном DataGridViewLinkCell, но можно через LinkLabel. Вот я и решил написать новый компонент, который бы выводил эту LinkLabel. Собственно всё получилось, в Paint я выставляю ей размеры и положение и т.п... но вот когда идёт скроллинг, то получаются артефакты всякие - так как для невидимых ячеек не вызывается метод Paint, то все их LinkLabel остаются на экране. Собственно вопрос: как сделать так, чтобы выводились LinkLabel только видимых ячеек, где это отслеживать? Ну и ещё парочка: каков общий принцип вывода контролов в ячейках таблицы? меня интересует именно вывод во всех ячейках, а не только при редактировании. Первое нигде не нашёл, а про второе почти везде пример с календарём, но мне это не нужно( Может есть другой способ сделать несколько ссылок в одной ячейке? мне только необходимо отслеживать на какое слово нажали и всё |
| Автор: Partizan 28.10.2008, 09:07 |
| NikotiN, уж лучше не возиться с отрисовкой, а просто сделать новые DataGridViewCell и DataGridViewColumn |
| Автор: NikotiN 28.10.2008, 10:14 | ||
я так и делаю. прошу прощения не уточнил метод Paint у DataGridViewCell
|
| Автор: Partizan 28.10.2008, 10:30 |
| NikotiN, а зачем все эти танцы с отрисовкой тогда? |
| Автор: NikotiN 28.10.2008, 10:32 | ||
| а как мне выводить эти LinkLabel несчастные? получается вот так: внизу то, что надо исправить - не скрываются LinkLabel от невидимых ячеек http://ipicture.ru/Gallery/Viewfull/8501932.html в общем вот минимизированный пример, как сделать так, чтобы скрывались LinkLabel для тех ячеек, который в настоящий момент на экран не выведены?
|
| Автор: Partizan 28.10.2008, 10:39 |
| NikotiN, сделайте свой UserControl, в котором будут размещаться несколько LinkLabel и на основе него сделайте новый тип DataGridViewColumn |
| Автор: NikotiN 28.10.2008, 10:43 |
| да сделал я, всё же написано, не об этом речь. речь о том, что когда я создал эти Column и Cell и добавил их в datagridview, то на экране выводятся все мои User Control, а не только для тех ячеек, которые видны на экране. смотри картинку прилепленную, там внизу висит много linklabel, хотя их меньше должно быть, но так как метод paint вызывается для видимых ячеек, то я не могу указать для остальных ячеек, которые не показаны на экране из-за скролла скрыть свои контролы |
| Автор: NikotiN 28.10.2008, 10:59 |
| в общем если не конкретизировать, то мне нужно отображать любой контрол во всех ячейках столбца в режиме просмотра |