小编Epi*_*Kip的帖子

如何禁用VS datagridview中的第一个自动选择?

我在Visual Studio(C#)中创建了一个使用datagridview的应用程序.现在,当我分配该datagridview的DataSource时,它会自动选择第一行,并执行我的代码进行选择.由于我经常重新分配该数据源,因此这是不可取的.有没有办法改变它,所以它不会自动进行第一次选择,只依赖于用户的选择?

谢谢!

回应Darshan Joshi的评论:除了自动生成的代码之外,datagridview上唯一改变的是将AutoGenerateColumns设置为false,并设置DataSource属性.我在我的selectionchanged委托中放置了一个MessageBox.Show,它似乎甚至在每次设置数据源时都被调用三次.就在数据加载之前,两次之后.

我无法在加载时将selected设置为false,因为数据源是在某些用户操作之后设置的,而不是在初始化时设置的.

c# datasource datagridview visual-studio winforms

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

如何在django grappelli中过滤自动完成结果?

我们有一个软删除方案,我们只是将事物标记为已删除,然后在各个地方过滤掉已删除的内容.我正试图弄清楚如何从grapeoli自动完成建议中过滤掉已删除的那些.

python django autocomplete django-queryset django-grappelli

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

拳击动态数据类型在c#?

键入检查的Object在那里类型检查编译时发生dynamic数据类型在运行时发生那么我们如何可以框一个动态值到对象?

dynamic dynamic = "This is dynamic data type";
Object obj = dynamic;
Console.WriteLine(obj);
Run Code Online (Sandbox Code Playgroud)

.net c#

5
推荐指数
1
解决办法
94
查看次数

为什么ValueMember会覆盖空的DisplayMember

当我设置一个DataSource控件并想要使用.ToString()as时DisplayMember,我需要设置DisplayMember最后一个或ValueMember将覆盖它.

空字符串上的MSDN作为显示成员:

从ListControl继承的控件可以显示不同类型的对象.如果对象上不存在指定的属性或DisplayMember的值为空字符串(""),则显示对象的ToString方法的结果.

代码重现:

类:

class SomeClass
{
    public string PartA { get; set; }
    public string PartB { get; set; }
    public string WrongPart { get { return "WRONG";  } }

    public override string ToString()
    {
        return $"{PartA} - {PartB}";
    }
}
Run Code Online (Sandbox Code Playgroud)

形成:

var testObj = new SomeClass() { PartA = "A", PartB = "B" };
comboBox1.DataSource = new [] { testObj };
comboBox1.DisplayMember = "";
comboBox1.ValueMember = "WrongPart"; …
Run Code Online (Sandbox Code Playgroud)

c# objectdatasource winforms

5
推荐指数
1
解决办法
191
查看次数

ScrollBar不会在Select()上滚动

我将焦点放在一个滚动条上vScrollBar.Select(); 滚动条变得聚焦但它不会滚动鼠标滚轮.

仅当鼠标光标位于滚动条上时才会滚动.

如何在Select()之后滚动滚动条而不将光标放在滚动条上?

环境:Windows 10,Windows窗体,.NET 4.0

编辑

当我用笔记本电脑触摸板上的两个手指"滚动"时,我注意到滚动条正确滚动,但不是鼠标滚轮.问题可能是因为Windows 10鼠标/触摸板驱动程序?

scrollbar .net-4.0 winforms windows-10

4
推荐指数
1
解决办法
1631
查看次数

自定义文本框自动完成

如何更改文本框上的自动完成功能?我希望当我输入一个字符串时,该框会建议包含该字符串的项目,而不是以它开头。

我的代码是:

class MyClass
{
    private AutoCompleteStringCollection autoCompleteList = new AutoCompleteStringCollection();

    public MyClass()
    {
        InitializeComponent();

        autoCompleteList.AddRange(ListNames.Select(x=>x.Name).ToArray());
        textBoxName.AutoCompleteCustomSource = autoCompleteList;
        textBoxName.AutoCompleteSource = AutoCompleteSource.CustomSource;
        textBoxName.AutoCompleteMode = AutoCompleteMode.Suggest;
        textBoxName.KeyDown += TextBoxtextName_KeyDown;
    }   

    private void TextBoxClient_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyData == Keys.Enter)
        {
            this.Name = (sender as TextBox).Text;
        }
    }     
}
Run Code Online (Sandbox Code Playgroud)

我想要的是:

所需的自动完成

c# textbox autocomplete winforms

4
推荐指数
1
解决办法
8408
查看次数

字符串模式分隔符

我有这个代码:

string first = "2-18;1-4; 5-212; 4-99" ;
Char delimiter = '-';

String pattern = @"\s?(\d+)([-])(\d+)";
Run Code Online (Sandbox Code Playgroud)

而且我想知道是否有任何方法可以将分隔符放在模式中而不是([-])

c#

3
推荐指数
1
解决办法
126
查看次数

while 循环中线程睡眠的替代方案

在我的应用程序中,我有少量线程 (5) 不间断地执行以下方法:

private void ThreadMethod()
{
     while(true)
     {
          if(CurrentItem != null)
          {
               HandleCurrentItem();
          }
          Thread.Sleep(200);
     }
}
Run Code Online (Sandbox Code Playgroud)

据我所知,这不是推荐的做法,但大多数争论是因为您没有响应能力,并且无法取消线程或时间不精确。这些对我来说都不是问题,但是我担心在此浪费太多 CPU 资源。从我在01:05:35看到的情况来看,当您调用 Sleep 方法时,处理器会得到充分利用。

我的问题:

在我的场景中这是一个不错的解决方案吗?如果没有的话,怎样才能做得更好呢?

注意:我使用的是.Net Framework 4.0

注 2:这些线程位于类的不同实例中,因此CurrentItem每个线程都有不同的对象。

c# wpf multithreading sleep

3
推荐指数
1
解决办法
7416
查看次数

Keycloak:当我刷新页面时,Angularjs 应用程序会注销?

Keycloack在我的angularjs应用程序中使用它进行登录并且工作正常。
但是,在应用程序登录后,当用户尝试进行页面刷新 ( F5) 时,应用程序将注销并向用户显示登录页面。

有人可以告诉我这个问题的原因是什么吗?

angularjs keycloak

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

Foreach演员跳过?

我有一些List<Building> playersBuildings包含所有来自Bulilding类的对象的列表,我遇到了一些对我来说非常不直观的东西.

以下代码:

foreach (Factory f in playersBuildings) {
    f.Update (deltaTime);
}
Run Code Online (Sandbox Code Playgroud)

试图施放的每个元素playersBuildings,以Factory与产生InvalidCastException的错误.虽然它有一定道理,但在编写代码时我希望foreach只会省略与指定类型不匹配的元素.

我首先想到的解决方案是:

foreach (Building f in playersBuildings) {
    if ((f is Factory) == false)
        continue;
    (f as Factory).Update (deltaTime);
}
Run Code Online (Sandbox Code Playgroud)

但我不喜欢使用as关键字.每次我想在我的f下面做一些迭代时需要输入额外的+10个字符是令人沮丧的.

有没有更优雅的方法来跳过不匹配正确类型的元素?

c# foreach casting

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