小编Fra*_*amp的帖子

多语言列上的全文搜索索引

我有一个DB,其中有一个shows带有多语言列的表title.我想通过添加如下索引来优化全文搜索:

CREATE INDEX title_idx ON shows USING gin(to_tsvector(title));
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

ERROR:  functions in index expression must be marked IMMUTABLE
Run Code Online (Sandbox Code Playgroud)

它基本上要求我添加语言参数以使to_tsvector不可变.结果将是:

 CREATE INDEX title_idx ON shows USING gin(to_tsvector(LANGUAGE, title));
Run Code Online (Sandbox Code Playgroud)

哪里LANGUAGE是我的目标语言之一.

是否可以创建适用于多种语言的索引?

postgresql sequel

14
推荐指数
1
解决办法
3958
查看次数

如何将ContextMenu放入TabPage的标题中

我有一个与TabControl我绑定的习惯.TabPagesContextMenu

我希望菜单只在单击页面标题时显示.

我所做的是,当TabControl点击它时,我检查这些条件:

private void MouseUp(object sender, MouseEventArgs e) 
{
    if (e.Button == Mousebuttons.Right) 
    {
        for (int i = 0; i < TabCount; ++i) 
        {
            Rectangle r = GetTabRect(i);
            if (r.Contains(e.Location) /* && it is the header that was clicked*/) 
            {
                // Change slected index, get the page, create contextual menu
                ContextMenu cm = new ContextMenu();
                // Add several items to menu
                page.ContextMenu = cm;
                page.ContextMenu.Show(this, e.Location);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我绑定MouseUp了 …

c# events tabcontrol contextmenu

6
推荐指数
1
解决办法
4377
查看次数

将没有默认值的NOT NULL字段添加到填充的DB中

我有一张桌子,我们称之为MyTable.它是Postgresql数据库的一部分.

MyTable很多条目中,让我们说超过一百万.我想在这个表中添加一个字段,让我们称之为MyNewField.它将由ActiveRecord Migration添加.

此字段没有默认值且不可为空.结果,在它的迁移类中会是这样的:

class AddMyFieldToMyTable < ActiveRecord::Migration
  def change
    add_column :my_table, :my_field, :text, null: false
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,它会触发错误(PG :: NotNullViolation),因为该表已包含行,所有行都将MyField设置为NULL.

我想要做的是:添加没有默认值的行和nullable设置为false(不触发PG :: NotNullViolation).然后,将另一个表中的值插入到每个记录中.

这可能是通过将具有nullable设置的字段添加到true,然后添加值,然后将更改回nullable设置为false来实现的.但是,我很想知道是否可以一次性完成.

ruby ruby-on-rails rails-activerecord

6
推荐指数
1
解决办法
2108
查看次数

保留先前选择的选项卡的记录

想象一下,您TabControl可以在其中关闭TabPage并根据需要重新排序它们。您希望在关闭页面后重新分配先前选择的页面,因此您需要保留先前索引的记录。SelectedIndex您最终会问自己:是否有可能在更改之前触发一个事件TabControl

然后,您搜索 提出的所有事件,TabControl您找到的最接近的事件是 ,SelectedIndexChanged它采用不包含上一个EventArgs索引信息的参数。

您还尝试通过事件保留先前索引的记录OnClick,但失败了,因为控件的关闭功能使这种方法变得不可能。

为什么这种方法不可能呢?因为当您关闭一个选项卡时,您也会选择它,所以您最终会看到SelectedIndex == PreviouIndexDispose()此页面,并且根本没有选择任何选项卡。

所以你最终决定来到这里问同样的问题:是否有可能在更改之前SelectedIndex触发一个事件TabControl如果没有,保留先前选择的索引的最佳方法是什么?

c# tabcontrol

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

TabControl闪烁

我有一个TabControl,我在其中添加/删除了几个TabPages.

当我添加足够的页面以便必须显示导航按钮时,我会出现闪烁问题.

当导航按钮(左向右导航2个箭头)未显示时,根本没有闪烁.闪烁与要添加的表单或页面的大小调整无关.

我试过了:

  • DoubleBuffering
  • SetStyles(......提高性能的所有参数)

编辑:在我的主WinForm中,我添加了此代码,以防止在调整窗口大小时出现渲染错误:

protected override CreateParams CreateParams 
{
    get
    {
        CreateParams cp = base.CreateParams;
        cp.ExStyle |= 0x02000000;
        return cp;
    }
}
Run Code Online (Sandbox Code Playgroud)

删除后,我的TabControl中不再出现闪烁现象.似乎我将不得不忍受调整大小渲染错误,因为持续闪烁更方便.

c# tabcontrol flicker winforms

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

在多个实例之间共享数据

我有一个类A和一个类B都需要使用类C.

我想通过这门课A,并B以对同一个实例运行C在变化了路,AC会影响C所使用的对象B.

我看到实现这一点的唯一方法是使用观察者模式,但我很想知道是否有任何简单的解决方案来解决这个问题.

c#

0
推荐指数
1
解决办法
44
查看次数