Tag: 列表框

禁用ListBox上的“拖动选择”

Winforms的ListBox似乎有一种奇怪的行为。 当我将SelectionMode设置为1时,我希望我可以单击一个项目,它将被选中。 这是正确的,但是如果我单击某个项目,在列表中上下拖动,则选择会更改。 现在,除了我需要在某些控件之间执行拖放之外,这不是什么大不了的事。 因此,当他们选择一个项目并将其向下拖动到列表中时,新选择的项目实际上是它注册为拖动的项目,并且错误的项目将被发送。 所以,然后我通过在mousedown上保存对所选项目的引用来进一步包扎它,但它最终会成为糟糕的用户体验。 我的用户将项目拖动到另一个列表框,这确实有效,但原始列表框不再选择“正确”项目,并且他们对第二个控件上实际丢弃了哪个项目感到困惑。 那么,有没有办法改变这种行为? 我希望在MouseDown中选择一个项目,忽略MouseUp部分内容。 简单地消耗这个事件似乎不够,我宁愿不必重写ListBox(我们必须为正在创建的任何新类编写文档)。

从文件加载列表框

这是我第一次创建一个C#程序,所以如果这个问题看起来很基本,我会道歉。 我的设计表单上有3个列表框以及3个按钮当我单击列表框的相应按钮时,我想将项目列表加载到每个文本框中。 有人可以告诉我如何做到这一点。

ASP.NET填充列表框问题

截至目前我正在尝试创建一个ASP.NET页面,它将根据您选择的类别按钮在列表框中列出类别的书籍,然后我有另外两个按钮(一个用于DESC订单,一个用于ASC订单) 。 现在的问题是,当我点击小说按钮并填充列表框后点击ASC或DESC按钮时,它会擦除​​列表框。 我之前发布了一个类似的问题,得到了一些修复,但是当我点击ASC或DESC按钮时它仍在擦除列表框。 我是ASP.NET的新手,非常欢迎这么简单或“newb友好”的解释和代码示例/修复! 提前致谢! 代码如下 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class partin : System.Web.UI.Page { private List books = new List(); void Page_PreRender() { Item_Listbox.DataSource = books; Item_Listbox.DataBind(); } int SortASC(string x, string y) { return String.Compare(x, y); } int SortDESC(string x, string y) […]

将多个项目添加到同一行的列表框中

嘿伙计们,我想出了如何一次一行地将项目添加到列表框中: try { if (nameTxtbox.Text == “”) throw new Exception(); listBox1.Items.Add(nameTxtbox.Text); nameTxtbox.Text = “”; textBox1.Text = “”; nameTxtbox.Focus(); } catch(Exception err) { MessageBox.Show(err.Message, “Enter something into the txtbox”, MessageBoxButtons.OK, MessageBoxIcon.Error); } 但我不能在同一行添加多个项目。 喜欢有first_name | last_name | DoB都在同一条线上。 当我做 listBox1.Items.Add(last_name.Text); 它将姓氏添加到列表框中的新行,我需要将其添加到与第一个名称相同的行。

如何禁止选择交互式ListBox项?

我的ListBox中的一些项目使用包含按钮和TextBox的模板。 如何才能使其无法从列表中选择这些项目,但仍然可以与按钮相互作用? 编辑: 我仍然需要能够选择此列表中的其他项目,而不是具有此模板的项目。

从列表框中搜索和删除项目

有没有办法根据字符串从列表框中删除项目? 我一直在玩几分钟,这是我到目前为止,但它不起作用 foreach(string file in LB_upload.Items) { ftp.Upload(file); int x = LB_upload.Items.IndexOf(file); LB_upload.Items.RemoveAt(x); } 我可以循环浏览每个项目,但我想做一些更优雅的事情

绑定列表框以索引C#

我不知道是否可能,但我想要的是类似的东西在WinForm listbox1有一个行列表(从文件复制) 在另一个Thread和类中,我在一个List上运行,该列包含我解析的每一行相同的行和DoSomething一旦我完成该行,我希望列表框中的索引改变 根据我的基本和有限的理解,我的方法是使用一个Event来激活forms,而不是使用Invoke(不用于交叉线程) 有没有办法以某种方式以我的for/foreach循环以某种方式绑定到listbox索引? class form { listBoxScript.SetSelected(ScriptCounter, true);<–bind the ScriptCounter? } 在另一个class级 class RunScript { //.. public void RunScriptList() { ScriptCounter = 0 ; foreach ( var cell in ScriptList) { ScriptCounter ++; //DoSomething } } }

从Invoke方法获取RETURN

我试图从另一个线程上的列表框项读取值。 我试图创建一个新的方法来运行invoke命令,我可以设法发送命令到列表框,如通过调用方法添加,但我似乎无法得到响应,我似乎无法得到项目的价值,我尝试了几种方法,一旦我将它从一个空格改为一个字符串,事情开始变得毛茸茸…… thread t1 = new thread(thethread) t1.start() public void thethread() { string text = readListBoxSelected(listBox1) + ” lala” ; } public static string readListBoxSelected(ListBox listbox) { if (listbox.InvokeRequired) { return (string)listbox.Invoke( new Func(() => readListBoxSelected(listbox)) ); } else { string varText = listbox.SelectedValue.ToString(); return varText; } } 以上是我想要做的一个例子。 这是错误: System.NullReferenceException未被用户代码处理 Message =对象引用未设置为对象的实例。 Source = […]

绑定到仅显示列表中第一个项目的嵌套属性

我试图将.NET 4.5中的C#Winforms中的ListBox控件绑定到具有嵌套属性的对象列表,我希望将其用于DisplayMember。 除了当我将DisplayMember设置为嵌套属性时,列表框仅显示一个项目,即使列表中有两个项目被绑定,它也是有效的。 如果我注释掉用于设置DisplayMember的代码,则listBox显示两个项目。 这是框架中的错误吗? 我想避免添加另一个属性或覆盖ToString(),如果我可以,因为我正在实现MVP并且希望将我的视图逻辑保持在我的视图中。 以下是一些示例代码。 public partial class Form1 : Form { public Form1() { InitializeComponent(); var bindingSource = new BindingSource(); var listOfMyItems = new BindingList { new MyItem { Number = 1, NestedItem = new NestedItem { Name = “name1”, Note = “note1” } }, new MyItem { Number = 2, NestedItem […]

根据OnKeyUp的文本框过滤ListBox项目?

我有一个包含大量项目的ListBox,这些项目都是帐号,因此难以搜索。 当用户键入文本框时,是否可以将项目“过滤”,以便只显示与目前输入的内容相匹配的项目? 例如 列表框 2342 3434 2332 3224 然后用户在texbox中输入3 – onKeyUp将列表框过滤为仅显示: 文本框 3 列表框 3434 3224 然后用户在框中输入2: 文本框 32 列表框 3224 这在ASP.Net(而不是MVC2)中是否可行? 如果是这样,最好通过UpdatePanel中的回调或somekind的javascript进行回调吗?