小编Boh*_*ohn的帖子

排序我不知道它有什么类型的集合?

有没有一种方法在.NET中我可以对我的集合进行排序,当我不知道运行时什么类型的对象我会传递给这个集合,也避免反射.

有什么想法吗?

c# collections

2
推荐指数
1
解决办法
88
查看次数

获取点击控件的点

我在C#Win App中使用旧的ActiveX控件.它有一个MouseUp事件,它的eventArgs传递我们点击的点的X和Y但是对于我的场景我使用它的ItemClick事件并且它的eventArgs没有关于X和Y的信息.但是我需要知道它们显示我的弹出窗口...所以有一种方法可以找出用户右键单击的X和Y的位置,这样我就可以将它传递给我的contextMenuStrip.Show方法.

谢谢

c# location contextmenu winforms

2
推荐指数
2
解决办法
3957
查看次数

控件的位置,与垂直滚动条效果无关

C#WinForms:如果无论垂直滚动条在哪里,都希望在面板上放置控件的位置,应该使用什么?我的意思是表格很大,所以我们使用滚动条上下移动,现在我希望该位置与我设置滚动条this.PointToClinet的位置无关。

c# winforms

2
推荐指数
1
解决办法
2242
查看次数

冗余演员会影响演出吗?

我知道装箱/拆箱会影响性能.根据MSDN,拆箱可能需要四倍的时间.我们的代码中有许多行具有"冗余"强制转换.实际上并不需要它们,如果没有它们,代码就可以很好地编译.可能它不会损害性能,因为编译器发现不需要进行拆箱,但也许不行!也许当我们强制转换时,编译器将被迫进行不必要的拆箱.我想知道那种类型的"冗余铸造"是否也会影响性能,就像拆箱或者nop一样?

c# performance boxing

2
推荐指数
1
解决办法
783
查看次数

按字母顺序对ListView上的项目进行排序

我有这样的列表视图,在FormLoad事件中,我应该为它做一些初始化,如:(我需要这些).

    listView.Scrollable = true;
    listView.HideSelection = false;
    listView.FullRowSelect = true;
    listView.View = View.Details;
    listView.HeaderStyle = ColumnHeaderStyle.None;
    ColumnHeader header = new ColumnHeader();
    header.Text = "MyHdr";
    header.Name = "MyCol";
    header.Width = listView.ClientSize.Width;
    listView.Columns.Add(header);
Run Code Online (Sandbox Code Playgroud)

我添加项目的方式非常简单:

listView.Items.Add("hello");
listView.Items.Add("How are you");
//... etc
Run Code Online (Sandbox Code Playgroud)

但是我希望它们按字母顺序添加和排序,但是当我向它添加一个新项目并调用Sort方法时,它什么都不做.为什么?!:(

编辑:这是我在调用最后一行的整个部分Sort()目标是有两个列表视图和一个移动按钮,当单击"移动"按钮时,一个列表视图中的选定项应该移动到另一个列表视图.(两个列表视图都不需要排序.只需对AvailLV列表视图进行排序)

private void MoveBtn_Click(object sender, EventArgs e)
{
    ListView source=null;
    ListView target= null;

    if(AvailableLV.SelectedItems.Count>0)
    {
        source = AvailableLV;
        target = SelectedLV;
    }

    if(SelectedLV.SelectedItems.Count>0)
    {
        source = SelectedLV;
        target = AvailableLV;
    }

    if (source != null && target != null)
    { …
Run Code Online (Sandbox Code Playgroud)

c# winforms

2
推荐指数
1
解决办法
2万
查看次数

窗体无法通过计时器事件顺利调整大小

我在表单的底部有一个网格控件,如果用户想显示/隐藏它,则可以显示或隐藏它。因此,一种方法是很好地使用表单的AutoSize并将该网格的Visuble属性更改为true或false,但是,我想让它变得更酷!所以我希望表格像车库门一样缓慢地调整大小!所以我在计时器上放了一个Timer并开始一点一点地增加计时器的高度...

所以当用户说显示/隐藏网格时,是这样的:

    timer1.Enabled = true;
    timer1.Start();
Run Code Online (Sandbox Code Playgroud)

在timer_click事件中是这样的:

    this.Height = this.Height + 5;
    if(this.Height -10 > ErrorsGrid.Bottom )
        timer1.Stop();
Run Code Online (Sandbox Code Playgroud)

有点工作,但仍然不完美。例如,它在一开始就滞后,停止调整大小,然后再次调整大小...因此,现在考虑到这个想法,您建议我做些什么更改以使此外观和效果更好?

c# winforms

2
推荐指数
1
解决办法
1603
查看次数

覆盖ComboBox的Add方法

有没有办法覆盖Combobx的Add()方法?

我问这个的原因是我想将类对象添加到我的combbox但是为了显示我希望它显示我的对象的名称.

例如: combbox.Items.Add(myClassObject)

但是我们在combbobx中实际看到的用户将显示为 myClassObject.Name

c# windows

2
推荐指数
1
解决办法
728
查看次数

重构此代码以提高性能

像这样的东西:

大会(A):

private void MoveItems(someCollection)
{
   // more code....

   foreach( item x in someCollection)
   {
      int x = getXFoo();
      assemblyB.UpdateOrderView(x)
   }

   //more code....
}
Run Code Online (Sandbox Code Playgroud)

组件(B):

private void UpdateOrderView(x)
{
    // more code....

    int y = this.ListCount();

    //......

    FinishDisplay(y)
}
Run Code Online (Sandbox Code Playgroud)

我们调用MoveItems()哪个集合和for-each循环.因此,如果集合中有600个项目,我们调用FinishDisplay()方法也是600次.但这就是我需要重构的地方.我不需要FinishDisplay()每次为集合中的每个项目调用.如果我可以在最后调用一次,那就足够了.

所以我正在寻找一种重构此代码的方法,以便FinishDiplay()只调用一次.我控制了源代码,所以如果我需要公开某些方法或者创建一些方法的重载,我也可以这样做.

c# performance refactoring

2
推荐指数
2
解决办法
177
查看次数

从索引中删除唯一性

在我的SQL Server中的一个表上,在Indexes文件夹中,我有一个由该表的三列组成的聚簇索引,但是Unique当我转到该索引的属性窗口时,还有一个复选框.我的问题是T-SQL命令如何告诉它删除唯一性部分并仍然保留索引?它甚至可能吗?

sql t-sql sql-server

2
推荐指数
1
解决办法
59
查看次数

FOR-EACH超过IEnumerable与列表

如果我将for-each循环传入方法参数,如果我将该参数作为一个IEnumerable或者如果我将该参数作为一个传递,那么是否有任何好处或差别List

c#

2
推荐指数
2
解决办法
133
查看次数