我有一个执行一系列汇编命令的项目。命令位于面板中(autoscroll = true),并且每次要执行的行都会突出显示。
问题在于,如果命令数量大于数字,则屏幕上不会显示突出显示的文本,用户必须手动向下滚动面板才能看到它。
我想要的是自动更改滚动焦点,以便用户在突出显示时可以看到隐藏的文本。所有文本都使用表格布局面板排列在表格中。
如下所示,当命令超过“0040001C”时,文本仍然突出显示但无法显示给用户。
因此,用户必须手动向下滚动才能看到正在执行的其余文本。 任何帮助?
答案 0 :(得分:2)
请参阅this answer,了解如何将Panel滚动到指定位置。
它会在您需要显示的位置创建一个新控件,然后使用Panel.ScrollControlIntoView方法强制面板滚动到它。
你可以在这里使用类似的方法。每当突出显示一行时,确定Panel中该行的左上角的位置(如何执行此操作取决于绘制表格的方式)。将其设为System.Drawing.Point
并将其命名为location
。
然后致电
location = new Point(location.X - 4, location.Y)
现在,您可以在该位置创建一个新控件(假设您的面板名为panel1)
var control = new Control();
control.Location = location;
panel1.Controls.Add(control);
最后,请致电
panel1.ScrollControlIntoView(control)
这应该将您的Panel滚动到location
指示的位置。
不要忘记通过调用
来摆脱新控件panel1.Controls.Remove(control)