小编Jul*_*lin的帖子

双缓冲ListBox

我有一个CheckedListBox(WinForms)控件(它继承自ListBox; googling显示问题在于ListBox),它固定在其表单的所有四个边上.调整窗体大小时,ListBox有一个丑陋的闪烁.我想继承CheckedListBox和设置DoubleBuffered,以true在构造函数(此技术也适用于其他控件,包括ListView和DataGridView中),但它没有任何效果.

我尝试添加WS_EX_COMPOSITED样式CreateParams,这有帮助,但使表单调整大小更慢.

有没有其他方法可以防止这种闪烁?

.net c# listbox doublebuffered winforms

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

拖放时会吞下异常

我有一个WinForms应用程序,我正在两个TreeViews之间拖放.

在某些时候,我想拒绝底层业务实现中的操作,所以我抛出一个Exception.我可以在"输出"窗口中看到"异常",但问题是我无法在UI中看到它并且它不会崩溃.

例外在哪里?

以下是一些描述问题的代码:

private TreeView tvLeft;
private TreeView tvRight;
private Dictionary<string, int> dico = new Dictionary<string, int>();

void tvLeft_DragDrop(object sender, DragEventArgs e) {

  if (e.Data.GetDataPresent(typeof(TreeNode))) {

    var tnSource = (TreeNode) e.Data.GetData(typeof(TreeNode));
    var tnDestination = tvLeft.GetNodeAt(tvLeft.PointToClient(new Point(e.X, e.Y)));

    // if I drag-drop the same node twice, there sould be an Exception
    // since the key is already in the dictionary...
    // ...but I get no Exception in the UI, the Application.ThreadException
    // or Appomain.CurrentDomain.UnhandledException handlers
    dico.Add(tnSource.Name, (new Random()).Next());

  }

}
Run Code Online (Sandbox Code Playgroud)

c# drag-and-drop exception winforms

7
推荐指数
1
解决办法
1430
查看次数

正则表达式任何不以.js结尾的字符串

这让我疯了.我正在尝试匹配所有没有结束的东西.js.我正在使用perl,所以?<!等等非常受欢迎.

我正在做的事情:

匹配这些

mainfile
jquery.1.1.11
my.module
Run Code Online (Sandbox Code Playgroud)

千万不要匹配这些

mainfile.js
jquery.1.1.11.js
my.module.js
Run Code Online (Sandbox Code Playgroud)

这应该是一个非常简单的任务,但我只是卡住了.我看着在文档两者regex,sed,perl甚至还被摆弄周围上regexr半小时.直观地说,这个例子(/^.*?(?!\.js)$/)应该这样做.我猜我只是瞎了眼.

提前致谢.

regex perl

7
推荐指数
1
解决办法
4175
查看次数

如何将MenuItems的数据绑定列表合并到WPF中的另一个MenuItem?

我有一个'文件' MenuItem,我想显示最近打开的文件列表.

这是我现在拥有的xaml:

<MenuItem Header="File}">
  <MenuItem Header="Preferences..." Command="{Binding ShowOptionsViewCommand}" />
  <Separator />
  <ItemsControl ItemsSource="{Binding RecentFiles}">
    <ItemsControl.ItemTemplate>
      <DataTemplate>
        <MenuItem Header="{Binding DisplayPath}" CommandParameter="{Binding}"
            Command="{Binding Path=DataContext.OpenRecentFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">
        </MenuItem>
      </DataTemplate>
    </ItemsControl.ItemTemplate>
  </ItemsControl>
  <Separator />
  <MenuItem Header="Exit" Command="{Binding CloseCommand}" />
</MenuItem>
Run Code Online (Sandbox Code Playgroud)

但是,当我使用这个代码时,MenuItems 周围有一个奇怪的偏移,看起来周围有一个容器.我怎么能摆脱它呢?

以下是它的外观截图:

替代文字http://www.cote-soleil.be/FileMenu.png

wpf binding mvvm menuitem

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

如何仅刷新数据绑定的DataGridView的可见行?

我有一个DataGridView绑定到动态创建的自定义对象的列表。此列表不是很大,最多5000个项目。但是,自定义对象的值每50毫秒更改一次,并且网格在刷新值时挂起了应用程序,最终导致崩溃。

我的问题是:有没有一种方法可以“虚拟化”的数据绑定,DataGridView以便仅刷新屏幕上实际看到的行?

编辑:我发现了为什么我DataGridView这么慢,它与数据绑定无关。因此,这个问题不再相关。作为附带说明,我认为DataGridViewListChanged事件发生时,仅刷新可见行。

c# data-binding datagridview winforms

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

如何使WinForms表单作为AvalonDock中的DockableContent工作?

我可以使用WinForms控件,但不能使用整个表单:

        var foo = new DockableContent();
        foo.Title = "Foo";
        foo.Name = "FooName";


        var c = new WindowsAppFramework.RenderTargetUserControl();
        c.Dock = System.Windows.Forms.DockStyle.Fill;
        c.AutomaticUpdateFPS = 60;

        var host = new System.Windows.Forms.Integration.WindowsFormsHost();
        host.Child = c;

        foo.Content = host;
        foo.ShowAsDocument(dockManager);
        foo.Focus();
Run Code Online (Sandbox Code Playgroud)

是否可以使用整个表格?我想在应用程序中使用现有的表单.

c# wpf winforms-interop winforms avalondock

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

重绘面板

我的问题是我在面板中有一个面板.在里面,我将AutoScroll属性设置为true.当我打开一个新窗口时,这个面板滚动开始.

我这样做,我在打开新窗口之前保存位置,然后在关闭它之后设置它.它有效,但它跳到开头然后回到我的位置.

c# scroll panel winforms

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

Android让手机在View里面屏幕化

我正在尝试绘制x和y轴线,但我无法获得用户的手机大小.如何在视图中完成?我试过这个:

DisplayMetrics dm = new DisplayMetrics();
int width = dm.widthPixels;
int height = dm.heightPixels;
Run Code Online (Sandbox Code Playgroud)

整个Android类代码如下:http: //pastebin.com/J02irHd8

android

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

将WinForms ListBox绑定到对象属性

我是第一次做一些WinForms编码,我正在尝试使用数据绑定.

我有一个列表框,我从我的控制器对象绑定到一个字符串数组,我也想将列表框中的SelectedItem绑定到控制器上的另一个字符串属性,以便我可以跟踪它.

listBox.DataSource = controller.ItemNames;
listBox.DataBindings.Add(new Binding("SelectedItem", controller, "CurrentItem"));
Run Code Online (Sandbox Code Playgroud)

我希望一旦用户选择列表框中的不同项目,就会更新控制器上的CurrentItem属性,但似乎只有在焦点移动到表单上的另一个项目时它才会更新.

这是预期的行为吗?有没有办法立即更新SelectedItem绑定?

data-binding listbox winforms

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

在c#中使用热键

我写了一个在后台运行的应用程序.我想写一个代码,这样,当按下"ctrl + Alt + Q"时,我应该提示用户一个消息框,"你确定要退出吗?".它是ac#windows应用程序.

谢谢.

c# winforms

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

在列表框中更改选定的itms颜色

我想从列表框中更改所选项目的颜色控制如何在Windows中执行此操作(Winforms)

c# winforms

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

SVN - 多种解决方案中的项目

有没有办法在SVN中跨多个解决方案共享项目?我已经在一个解决方案中有一个类库,我想在另一个解决方案中导入.我可以在新解决方案中导入项目,还是路径存在问题(因为项目不在同一个存储库中)?有一个更好的方法吗?

c# svn project solution

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