public EditorListViewInfo GetCurrentListViewInfo() { var viewInfo = new EditorListViewInfo { FirstVisibleIndex = mWordEditorList.FirstVisibleIndex }; int selectedEditorIndex = mWordEditorList.ActiveEditorIndex; if (selectedEditorIndex >= 0) { viewInfo.SelectedIndex = viewInfo.FirstVisibleIndex + selectedEditorIndex; viewInfo.FocusedField = mWordEditorList[selectedEditorIndex].FocusedField; } return(viewInfo); }
void MFirstAddressTextBox_ValueChanged(LongValueTextBox source, LongValueTextBox.ValueChangedEventArgs args) { var oldViewInfo = new EditorListViewInfo { FirstVisibleIndex = mWordEditorList.FirstVisibleIndex }; int selectedEditorIndex = mWordEditorList.ActiveEditorIndex; if (selectedEditorIndex >= 0) { oldViewInfo.SelectedIndex = oldViewInfo.FirstVisibleIndex + selectedEditorIndex; oldViewInfo.FocusedField = mWordEditorList[selectedEditorIndex].FocusedField; } mWordEditorList.FirstVisibleIndex = (int)args.NewValue; mAddressHistorySelector.AddItem(oldViewInfo, new EditorListViewInfo { FirstVisibleIndex = mWordEditorList.FirstVisibleIndex }); }
void MAddressHistorySelector_ItemSelected(object sender, ItemSelectedEventArgs <EditorListViewInfo> e) { EditorListViewInfo viewInfo = e.SelectedItem; if (viewInfo.SelectedIndex.HasValue) { int selectedIndex = viewInfo.SelectedIndex.Value; if (selectedIndex < viewInfo.FirstVisibleIndex + mWordEditorList.VisibleEditorCount) { mWordEditorList.FirstVisibleIndex = viewInfo.FirstVisibleIndex; mWordEditorList[viewInfo.SelectedIndex.Value - viewInfo.FirstVisibleIndex].Focus(viewInfo.FocusedField, null); } else { mWordEditorList.MakeIndexVisible(selectedIndex); } } else { mWordEditorList.FirstVisibleIndex = viewInfo.FirstVisibleIndex; } }
public void MakeAddressVisible(int address, bool trackChange) { if (trackChange) { var oldViewInfo = GetCurrentListViewInfo(); mWordEditorList.MakeIndexVisible(address); var newViewInfo = new EditorListViewInfo { FirstVisibleIndex = mWordEditorList.FirstVisibleIndex, SelectedIndex = address }; int selectedEditorIndex = mWordEditorList.ActiveEditorIndex; if (selectedEditorIndex >= 0) { newViewInfo.FocusedField = mWordEditorList[selectedEditorIndex].FocusedField; } mAddressHistorySelector.AddItem(oldViewInfo, newViewInfo); } else { mWordEditorList.MakeIndexVisible(address); } }