Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/30: Рейтинг темы: голосов - 30, средняя оценка - 4.63
0 / 0 / 0
Регистрация: 30.01.2010
Сообщений: 11

MSFlexGrid свойство автоматически изменяющее размеры ячейки в зависимости от длины текста в ней

01.02.2010, 23:40. Показов 6444. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Неподскажите, есть ли у MSFlexGrid свойство автоматически изменяющее размеры ячейки в зависимости от длины текста в ней? Что-то аналогичное AutoSize у Label...
Заранее благодарен...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2010, 23:40
Ответы с готовыми решениями:

DBGrid Автоматическое изменение ширины ячейки в зависимости от количества текста в ней
Здравствуйте! Пишу программу на Visual Basic 6.0. Интересует как в компоненте DBGrid сделать автоматическое изменение ширины ячейки в...

Как сделать так, что бы размер ячейки при переносе раздвигался в зависимости от обьема текста в ней?
Формирую из одной книги другую. Необходимо перенести в ячейки текст разной длины. Ориентироваться на первую книгу не могу, т.к. там...

MSFlexGrid: отображение текста по центру ячейки
Хочу, чтобы текст в ячейках флексгрида отображался по центру ячейки. пробую MSFlexGrid1.CellAlignment = 2, но не работает. подскажите как...

3
0 / 0 / 0
Регистрация: 22.01.2010
Сообщений: 13
02.02.2010, 23:34
Попробуй эту функцию :
Visual Basic
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
Public Function fColWidth(MyForm As Form, MyGrid As MSFlexGrid) As Boolean
 
Dim c As Integer
Dim r As Integer
 
fColWidth = False
 
On Error GoTo EH_Error
 
  For c = 0 To MyGrid.Cols - 1
    For r = 0 To MyGrid.Rows - 1
    MyGrid.Col = c
      MyGrid.Row = r
    
    If MyGrid.ColWidth(c) < MyForm.TextWidth(MyGrid.Text) Then
        MyGrid.ColWidth(c) = ' ' & MyForm.TextWidth(MyGrid.Text & '  ')
      Else
    End If
    Next r
   Next c
 
fColWidth = True
 
EH_Error:
 If Err.Number <> 0 Then
   IaSub.sMsgError ModuleName, 'fColWidth', Err.Number, Err.Description
   Exit Function
 End If
End Function
0
0 / 0 / 0
Регистрация: 15.04.2009
Сообщений: 26
03.02.2010, 09:30
Форматировать текст в Flex-е можно текстовым полем ...
Visual Basic
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
' Процедура форматирования строчки грида заполненного данными 
 
Private Sub AdjustRowHeight(flx As MSHFlexGrid, ByVal i As Long)
  Dim j As Long
  Dim lngHeight As Long, lngLinesOfText As Long
  Dim nColSave As Long
  nColSave = flx.Col
  If flx.RowHeightMin Then flx.RowHeight(i) = flx.RowHeightMin
  For j = 1 To flx.Cols - 1
    If flx.ColWordWrapOption(j) <> flexSingleLine Then
      flx.Col = j
      Text1.Width = Abs(flx.CellWidth)
      Text1.Text = flx.Text
      '*************** высота строки
      'Если работаем  в UserControl то используем
      'lngHeight = UserControl.TextHeight(Text1.Text)
      ' если в форме
      lngHeight = Me.TextHeight(Text1.Text)
      '***************************************
      lngLinesOfText = GetLinesOfText(Text1.hwnd)
      ' это просто ограничение, чтобы текст был виден  не болие 5 строк
      If lngLinesOfText > 5 Then lngLinesOfText = 5
      
      If flx.RowHeight(i) < lngLinesOfText * lngHeight Then
        flx.RowHeight(i) = lngLinesOfText * lngHeight + 50
      End If
    End If
  Next j
  flx.Col = nColSave
End Sub
 
'  --   Это в модуль
 
Public Const EM_GETLINECOUNT = &HBA
 
Public Function GetLinesOfText(hwnd As Long) As Long
  GetLinesOfText = SendMessage(hwnd, EM_GETLINECOUNT, 0&, 0&)
End Function
 
Public Declare Function SendMessage Lib 'user32' Alias 'SendMessageA' (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
при желании, код можно доработать, чтобы менялась не только высота строки но и ширина колонки.
0
0 / 0 / 0
Регистрация: 12.02.2010
Сообщений: 5
12.02.2010, 13:15
А я вот процедурку какую использую. Она как раз меняет и ширину и высоту ячейки. Если речь идет о MSFlexGrid. С другими эдементами не пробовал.
Работает это все в табличном редакторе, который я пишу в качестве курсовой работы, поэтому используются MDI-формы

lblTempForSizeOfCell. - временная надпись. Свойства visible=false (видеть ее на форме незачем), AutoSize=true (как раз это нам и пригодится для считывания размеров текста).
txtStrokaFormul - строка для ввода формул. Соответственно по ширине этого текста и должны меняться размеры ячейки
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'Процедура, которая меняет размер ячейки в зависимости
'от размеров содержимого
Sub ChangeSizeOfCell()
 
With frmTableEditMDI
 
' В надпись считываем содержимое ячейки, которое также содержится в строке формул
    lblTempForSizeOfCell.Caption = .txtStrokaFormul.Text
    lblTempForSizeOfCell.Font = .ActiveForm.fxgTable.CellFontName
    lblTempForSizeOfCell.FontSize = .ActiveForm.fxgTable.CellFontSize
 
' Сравниваем ширину столбца с шириной надписи. Если она меньше, то приравниваем ширину столбца к ширине надписи
    If .ActiveForm.fxgTable.ColWidth(.ActiveForm.fxgTable.Col) <= frmTableEditMDI.lblTempForSizeOfCell.Width + 100 Then
        .ActiveForm.fxgTable.ColWidth(.ActiveForm.fxgTable.Col) = frmTableEditMDI.lblTempForSizeOfCell.Width + 100
    End If
 
' ...Аналогично для высоты
    If .ActiveForm.fxgTable.RowHeight(.ActiveForm.fxgTable.Row) <= frmTableEditMDI.lblTempForSizeOfCell.Height Then
        .ActiveForm.fxgTable.RowHeight(.ActiveForm.fxgTable.Row) = frmTableEditMDI.lblTempForSizeOfCell.Height + 100
    End If
    
End With
 
End Sub
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.02.2010, 13:15
Помогаю со студенческими работами здесь

Поменять цвет ячейки в зависимости от текста ячейки
Всем привет! помогите с задачкой! как в VBA реализовать заливку ячеек по содержимому УСО №25 УСО№25, подучасток 2 УСО№25,...

Подогнать размеры картинки под размеры кнопки автоматически
Есть кнопка button1 и файл изображения trololo.bmp. Картинка прямоугольная и больше кнопки, кнопка круглая. Как сделать так, чтобы картинка...

При редактировании текста в таблице, цвет ячейки менялся автоматически
Здравствуйте, вопрос такой, есть таблица в ней есть значения по типу открыто фон ячейки зеленый, закрыто фон ячейки красный ожидание фон...

Как автоматически изменять размер текста в spinner в зависимости от размера экрана?
Здравствуйте. В программе использую две темы светлую и темную: &lt;style name=&quot;BlackTheme&quot; ...

Изменение размера шрифта в textBlock в зависимости от длины текста
день добрый! есть wpf приложение с такой разметкой: &lt;Grid&gt; &lt;Grid.RowDefinitions&gt; &lt;RowDefinition...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 23.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru