Comments (3)
protected override void OnMouseWheel(MouseEventArgs e)
{
base.OnMouseWheel(e);
int incrementBy=0; // Don't know yet the direction
int firstDisplayedRowIndex = Math.Max(this.FirstDisplayedScrollingRowIndex + (e.Delta > 0 ? -1 : 1), 0); // Default next is current +/- 1
if (this.RowCount > 1) // It is worthless to do all this if there is no row in the grid
{
if (e.Delta > 0 && this.FirstDisplayedScrollingRowIndex > 0) // Are we going up?
{
incrementBy = -1;
}
else if (e.Delta < 0) // Or down?
{
incrementBy = 1;
}
while (!this.Rows[firstDisplayedRowIndex].Visible) // Oops, row is invisible. Time to jump to a visible row.
{
if (firstDisplayedRowIndex < 1) // Go to first displayable row
{
firstDisplayedRowIndex = this.Rows.GetFirstRow(DataGridViewElementStates.Visible);
}
else if (firstDisplayedRowIndex > this.Rows.GetLastRow(DataGridViewElementStates.Visible)) // Go to last displayable row
{
firstDisplayedRowIndex = this.Rows.GetLastRow(DataGridViewElementStates.Visible);
}
else // Try next row, maybe it is visible?
{
firstDisplayedRowIndex += incrementBy;
}
}
// As we just found a visible candidate, move to it.
this.FirstDisplayedScrollingRowIndex = firstDisplayedRowIndex;
}
}
Is a valid solution but maybe not suitable for the initial developer.
By the way, there is another
_grid.FirstDisplayedScrollingRowIndex = 0;
that should be replaced by
_grid.FirstDisplayedScrollingRowIndex = _grid.Rows.GetFirstRow(DataGridViewElementStates.Visible);
in the
void _scrollbar_Scroll(object sender, System.Windows.Forms.ScrollEventArgs e)
from metroframework-modern-ui.
Duplicate of #81
from metroframework-modern-ui.
protected override void OnMouseWheel(MouseEventArgs e)
{
base.OnMouseWheel(e);
int incrementBy=0; // Don't know yet the direction
int firstDisplayedRowIndex = Math.Min(Math.Max(this.FirstDisplayedScrollingRowIndex + (e.Delta > 0 ? -1 : 1), 0), this.RowCount-1); // Default next is current +/- 1
I added Min function from your solution.
That solved my problem.
Thanks
from metroframework-modern-ui.
Related Issues (20)
- mertotabcontrol can not set imglist prop
- Tile style White on White
- Clear Button in MetroTextBox does not show even if property ShowClearButton set to true
- Control.Minimilize,MaximizeBoxe's are still white after using Dark theme HOT 1
- ComboBox.DropDownStyle does nothing HOT 2
- How to Apply Theme and Color to MetroUserControl
- Visual Studio stops when Cursor is changed to hand
- pressing Tab Next Control and Windows ShowDialog
- Failed to create component 'MetroButton' - .NET Core 5
- MetoTextbox Custom Button event makes VS Hang
- Is it possible to build locally? HOT 1
- pfx password?
- Variable FontSize property (feature request)
- Form impossible to resize HOT 1
- Pressing TAB key in application affects ComboBox selection
- Error creating MetroTextBox on .Net6 HOT 3
- [Bug] Changing cursor in a form with metrotextbox caused the app to crash
- Allow user to set custom colors
- Problem With Placing A MetroLabel in Child Form in MetroTabControl(ModernUI)
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from metroframework-modern-ui.