Решение, которое я нашел, было отключить вертикальную полосу прокрутки. Это также отключает прокрутку колесиком мыши. Также используйте методы SWT addMouseWheelListener()
и mouseScrolled()
вместо addListener()
. Затем просто прокрутите ScrolledComposite, используя метод getOrigin()
.
myText.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseScrolled(MouseEvent e) {
if (!myText.isFocusControl() ) {
myText.getVerticalBar().setEnabled(false);
if (e.count == 3) {
mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y - 30);
} else if (e.count == -3) {
mySc.setOrigin(sc.getOrigin().x, mySc.getOrigin().y + 30);
}
} else {
myText.getVerticalBar().setEnabled(true);
}
}
});
count
всегда возвращает 3 или -3, в зависимости от направления прокрутки. Значение 30 для прокрутки вверх / вниз хорошо для меня, может быть более или менее для других целей. Я еще не проверял поведение на машине с Windows.
The expiring certificate problem was fixed in one of the service packs to .NET 2. Installing the latest framework (3.5 SP1) will definitely include the fix. You can just switch to a renewed certificate and redeploy.
If really want to go unsigned, I think the fix is same - make sure your users have .NET 3.5 SP1 and make it a prerequisite in your ClickOnce settings.