C# winform中关于两个ListBox清除selectIndex的问题。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# winform中关于两个ListBox清除selectIndex的问题。相关的知识,希望对你有一定的参考价值。

我想在listBox1中选中了一个选项就清除对listBox2中的选定,在listBox2中选中了一个选项就清除对listBox1中的选定,想用系统提供的selectIndexChanged方法。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

listBox2.SelectedIndex = -1;

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)

listBox1.SelectedIndex = -1;

这样的话,在listBox1中选中一个选项。listBox2中的SelectIndex就会变成-1,然后程序发现listBox2中的SelectIndex发生了改变就会进入listBox2_SelectedIndexChanged把listBox1中的SelectIndex也变成-1。。。。。求帮助,不知道怎么办了。= =
找到了,正确的解决方法是这样的
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)

listBox2.SelectedIndexChanged +=listBox2_SelectedIndexChanged;
listBox2.SelectedIndex = -1;
listBox2.SelectedIndexChanged +=listBox2_SelectedIndexChanged;

private void listBox2_SelectedIndexChanged(object sender, EventArgs e)


listBox1.SelectedIndexChanged +=listBox1_SelectedIndexChanged;
listBox1.SelectedIndex = -1;
listBox1.SelectedIndexChanged +=listBox1_SelectedIndexChanged;

参考技术A 这样简单
rightlistbox.Items.AddRange(leftlistbox.Items);
leftlistbox.Items.Clear();追问

我只是要使选中项不再被选中,不是要删除选中项里面的值啊

C# Winforms:没有 AutoScroll 的滚动条

【中文标题】C# Winforms:没有 AutoScroll 的滚动条【英文标题】:C# Winforms: Scrollbars without AutoScroll 【发布时间】:2015-12-01 02:17:27 【问题描述】:

我有一个 TabPage,里面有东西。我的一些用户的屏幕很小,其中一些东西不适合。当我在 TabPage 上设置 AutoScroll tr​​ue 时,它​​会按预期添加滚动条。不过……

在这个 TabPage 中有一个 ListBox。 ListBox 的位置使得单击它以选择一个 ListItem会导致 TabPage 将整个 ListBox 滚动到视图中,这反过来又会导致单击选择错误的 ListItem。

如果我禁用 AutoScroll,ListBox 可以正常工作,但用户无法滚动 TabPage。

我曾尝试添加面板和 TableLayoutPanel,并弄乱了具有 AutoScroll 和不具有 AutoScroll 的各种组合。

我尝试了一个 DLLImport hack,它强制将一个无样式的滚动条放到面板上,但该滚动条没有做任何事情,而且它看起来不像应用程序中的其他滚动条。

编辑:请注意,有些用户的屏幕更大。在 那些 屏幕上,有足够的空间来显示整个 TabPage 而无需滚动,并且可以正常工作。

如何在没有 auto 滚动行为的情况下获得 scrollbars

【问题讨论】:

可以依靠VScrollBar & HScrollBar手动实现滚动条。 【参考方案1】:

尝试像这样创建一个新的面板控件:

public class PanelEx : Panel 
  protected override Point ScrollToControl(Control activeControl) 
    return this.DisplayRectangle.Location;
  

将此面板放在您的 TabPage 中,并将 Dock 属性设置为 Fill。将所有控件放入该面板而不是 TabPage。

【讨论】:

以上是关于C# winform中关于两个ListBox清除selectIndex的问题。的主要内容,如果未能解决你的问题,请参考以下文章

c# winform 程序如何同时读取两个com端口的数据,再一个界面。

WinForm实现简单的拖拽功能(C#)

c# winform listbox 如何 获取 当前 选中的值 急!!!

C# winform中ListBox各项之间没有分割线?(VS2013)

请教c# winform,权限设计问题

c#中关于splitContainer控件的用法:如何做到不清除控件就能在panel2中打开一个窗体呢?