Unplanned
Last Updated: 17 Feb 2022 06:08 by Jussi

Please use the following code snippet and see the gif file illustrating the incorrect scrollbars position after scrolling to the last item and selecting it:

        public RadForm1()
        {
            InitializeComponent();

            this.radListControl1.ItemHeight = 30;
        }

        private void radButton1_Click(object sender, EventArgs e)
        {
            this.radListControl1.ScrollToItem(this.radListControl1.Items.First);
            this.radListControl1.SelectedItem = this.radListControl1.Items.First;
        }

        private void radButton2_Click(object sender, EventArgs e)
        {
            this.radListControl1.ScrollToItem(this.radListControl1.Items.Last);
            this.radListControl1.SelectedItem = this.radListControl1.Items.Last;
        }

        private void RadForm1_Load(object sender, EventArgs e)
        {
            List<Rivi> tmpList = new List<Rivi>();
            tmpList.Add(new Rivi() { Key = 1, Code = "1st" });
            tmpList.Add(new Rivi() { Key = 2, Code = "2nd" });
            tmpList.Add(new Rivi() { Key = 3, Code = "3rd" });
            tmpList.Add(new Rivi() { Key = 4, Code = "4th" });
            tmpList.Add(new Rivi() { Key = 5, Code = "5th" });

            this.radListControl1.ValueMember = "Key";
            this.radListControl1.DisplayMember = "Code";
            this.radListControl1.DataSource = tmpList;
        }

        public class Rivi
        {
            public int Key { get; set; }

            public string Code { get; set; }
        }

Workaround:  

            this.radListControl1.ScrollToItem(this.radListControl1.Items.Last);
            this.radListControl1.ListElement.InvalidateMeasure(true);
            this.radListControl1.ListElement.UpdateLayout();
            this.radListControl1.SelectedItem = this.radListControl1.Items.Last;