【问题标题】:is there any way to use scrollbar to scroll 3 different textboxes together?有没有办法使用滚动条一起滚动 3 个不同的文本框?
【发布时间】:2012-11-27 20:49:30
【问题描述】:

我想滚动 3 个不同的 TextBoxes

我在here 中找到了一些方法。但是在 VS2012 中我不能使用 Windows.Forms 这很烦人。我确实尝试添加引用,但我发现没有 Windows.Form 这是屏幕截图:

所以我找到了一个使用滚动条的想法,可以吗?

【问题讨论】:

  • 你的应用程序是 Winforms 吗? WPF?
  • 截图网址好像坏了

标签: c# wpf textbox scrollbar


【解决方案1】:

为了使用windows.forms命名空间,您需要将System.windows.forms库添加到您的项目中:右键单击References(解决方案资源管理器)->Add Reference->.NET-Tab->选择@987654326 @ 并单击确定。

然后,您可以在需要的每个文件中导入 System.Windows.Forms 命名空间。

【讨论】:

  • 有一条消息“所有框架程序集都已被引用”
【解决方案2】:

http://www.gbogea.com/2009/07/08/how-to-keep-two-scrollviewers-in-sync-in-wpf

有代码。如果站点出现故障,将在此处复制粘贴作为镜像:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="1*" />
        <ColumnDefinition Width="1*" />
        <ColumnDefinition Width="1*" />
    </Grid.ColumnDefinitions>
<ScrollViewer Grid.Column="0" Name="scrollViewerLeft" ScrollChanged="scrollViewerLeft_ScrollChanged">
    <ListBox>
        <ListBoxItem>1</ListBoxItem>
        <ListBoxItem>2</ListBoxItem>
        <ListBoxItem>3</ListBoxItem>
        ...
        <ListBoxItem>100</ListBoxItem>
    </ListBox>
</ScrollViewer>
<ScrollViewer Grid.Column="1" Name="scrollViewerMiddle">
    <ListBox>
        <ListBoxItem>1</ListBoxItem>
        <ListBoxItem>2</ListBoxItem>
        <ListBoxItem>3</ListBoxItem>
        ...
        <ListBoxItem>100</ListBoxItem>
    </ListBox>
 </ScrollViewer>
 <ScrollViewer Grid.Column="2" Name="scrollViewerRight">
    <ListBox>
        <ListBoxItem>1</ListBoxItem>
        <ListBoxItem>2</ListBoxItem>
        <ListBoxItem>3</ListBoxItem>
        ...
        <ListBoxItem>100</ListBoxItem>
    </ListBox>
 </ScrollViewer>
</Grid>

以及背后的代码:

private void scrollViewerLeft_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    scrollViewerMiddle.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);
    scrollViewerRight.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);
}
private void scrollViewerMiddle_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    scrollViewerLeft.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);
    scrollViewerRight.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);
}
private void scrollViewerRight_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    scrollViewerLeft.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);
    scrollViewerMiddle.ScrollToVerticalOffset((sender as ScrollViewer).VerticalOffset);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 2022-01-13
    • 2011-04-19
    相关资源
    最近更新 更多