How to select/highlight a cell/row in the uitable programmatically?

조회 수: 36 (최근 30일)
Vyshakh Pv
Vyshakh Pv 2018년 8월 20일
편집: Adam Danz 2021년 5월 10일
I am working with 3 big XLS files, each opened in 3 uitable. When i click on a cell of any of the uitable, row with matching time from other 2 tables should be highlighted.
If the row is not visible, _ uitable_ should scroll accordingly.
So, how to programmatically highlight a row or column of a uitable?
If it is impossible, is there any other solution to the problem??

채택된 답변

Adam Danz
Adam Danz 2018년 8월 20일
편집: Adam Danz 2021년 5월 10일
Matlab R2021a and later
Starting in Matlab r2021a you can programmatically scroll to any row, column, or specific cell in a uitable using the scroll function (see Four New App Features in MATLAB R2021a).
To highlight parts of the uitable, use uistyle (R2019b and later);
Prior to Matlab R2021a
Here's an explanation of how to programmatically select a cell from a UI table.
The workflow you'll follow for your description is this
  • For each UItable, within the CellSelectionCallback, get the currently selected cell coordinates.
  • Within the same callback function, use those coordinates to set the other UI tables (see link above).
I'm not sure if this will automatically scroll or not, though. If you get stuck, follow-up with a comment below.
  댓글 수: 5
Adam Danz
Adam Danz 2018년 12월 5일
Thanks for the feedback, Vyshakh. I'm using matlab 2018a and when I select a row higher up in the table, the table jumps to that row as expected. I wonder if this is a difference in matlab versions or if there's something in your code causing that.
Matlab's findobj() function is not open source so I'm not sure how you found lots of pause() in that function. If you mean that the findobj() function takes too much time, you could set up your code so that the object is stored in a persistent variable so your code only has to find it once.
Vyshakh Pv
Vyshakh Pv 2019년 5월 2일
  1. Error in Jumping to previous row due to my coding, its fixed and working fine now
  2. I was talking about findjobj() (mentioned in the link shared by you) not findobj().

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Develop Apps Using App Designer에 대해 자세히 알아보기

제품


릴리스

R2017a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by