小编def*_*ale的帖子

如何在C#中停靠窗体?

我只是想知道是否可以将窗体停靠在用户屏幕的顶部?我一直试图通过手动将表单的位置设置为我想要的坐标来做到这一点.但是,使用此方法,用户只需拖动即可更改表单的位置.我想使表单停靠在屏幕的上半部分,因为这个窗口表单将作为我正在制作的项目的菜单服务器.

非常感谢.:)

c# window dock winforms form-control

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

如何以线程安全的方式将控制台程序的输出重定向到文本框?

我无法将控制台输出重定向到Windows窗体文本框.问题与线程有关.我正在以下列方式运行控制台应用程序,

private void RunConsoleApp()
{
    Process proc = new Process();
    proc.StartInfo.FileName = "app.exe";
    proc.StartInfo.Arguments = "-a -b -c";
    proc.StartInfo.UseShellExecute = false;

    // set up output redirection
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.RedirectStandardError = true;    
    proc.EnableRaisingEvents = true;
    proc.StartInfo.CreateNoWindow = true;

    // Set the data received handlers
    proc.ErrorDataReceived += proc_DataReceived;
    proc.OutputDataReceived += proc_DataReceived;

    proc.Start();
    proc.BeginErrorReadLine();
    proc.BeginOutputReadLine();
    proc.WaitForExit();

    if (proc.ExitCode == 0)
    {
        out_txtbx.AppendText("Success." + Environment.NewLine);
    }
    else
    {
        out_txtbx.AppendText("Failed." + Environment.NewLine);
    }
}
Run Code Online (Sandbox Code Playgroud)

然后使用此输出处理程序捕获和处理数据,

// Handle the date received by the console process …
Run Code Online (Sandbox Code Playgroud)

c# multithreading textbox console-application winforms

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

Kadane算法负数

int array[] = {-1, 4, -2, 5, -5, 2, -20, 6};
Run Code Online (Sandbox Code Playgroud)

如果我有那个数组,我的Kadane算法实现找到最大的子数组工作:

  int max_so_far = INT_MIN;
  int max_ending_here = 0;
  for (int i = 0; i < size; i++) {
    max_ending_here = max(max_ending_here + array[i], 0);
    max_so_far = max(max_ending_here, max_so_far);
  }

  printf("%d\n", max_so_far);
Run Code Online (Sandbox Code Playgroud)

但是,如果我有一个所有负数的数组:

int array[]= {-10, -10, -10};
Run Code Online (Sandbox Code Playgroud)

它不起作用,它应该返回-10,但我得到0.

我怎样才能让它对负数起作用?

谢谢!

c++ algorithm kadanes-algorithm

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

DataGridView的魔力

我有一个Windows窗体,包含一个文本框和一个datagridview.一旦文本框的文本发生更改,datagridview的数据源就会更新.它通过处理文本框的TextChanged事件并为数据源分配新的List来完成.通常,新数据源包含1000多行,相当大量的数据.此外,查询数据库以获取此列表也很耗时.

让我感到惊讶的是,如果我在文本框中输入的速度足够快,那么datagrid会一次又一次地暂停渲染,并且只会渲染最终结果.它完全忽略了中间结果.这是有道理的,因为在连续的文本更改期间运行的UI线程正忙.但为什么我仍然可以输入文本框?

  1. TextChange
  2. 获取数据
  3. 刷新DataGridView(无需渲染/绘制)
  4. TextChange
  5. 获取数据
  6. 刷新DataGridView(无需渲染/绘制)
  7. ... TextChange
  8. 获取数据
  9. 刷新DataGridView(最终渲染/绘画)
  10. 完成.

这就像文本框在另一个线程上,但绝对不是.有人知道为什么吗?

c# datagridview winforms

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

替换已弃用的Android Facebook代码

我想知道下面的代码的确切替换,没有弃用的代码.此外,我想在新的Facebook SDK 3.0中尝试它.

Facebook aFacebook = new Facebook("app_id");
if( !aFacebook.isSessionValid() ) {
    aFacebook.authorize(this, new String[] { "email" }, 
                        new LoginDialogListener());
}
Run Code Online (Sandbox Code Playgroud)

我尝试了很多东西.但是,无法完成它.

TIA

android facebook login deprecated

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

如何在winforms中第二次"顺利"展示表格?

我有一个表单,应该通过点击主窗体中的按钮显示,我想当用户关闭第二个窗体时,主窗体再次显示在屏幕的中心.我使用下面的代码来做到这一点:

private void button_Click(object sender, EventArgs e)
{
    this.Hide(); //Hides the main form .
    form2.ShowDialog(); //Shows the second form .
    this.Show(); // Re-shows the main form after closing the second form ( just in the taskbar , not on the screen ) .
    this.StartPosition = FormStartPosition.CenterScreen; // I write this code because I want to show the main form on the screen , not just in the taskbar .
}
Run Code Online (Sandbox Code Playgroud)

这些命令做我想要的,但问题是关闭第二个窗体后,主窗体会显示一个小跳跃,就像眨眼一样!(它不是连续的,它只是在第一个.)我想要的是顺利完成,没有任何眨眼.这怎么可能?

提前致谢.

c# winforms form-control

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

安排Spring缓存驱逐?

是否有可能在每天午夜安排弹簧缓存驱逐?

我读过Springs Cache Docs,但没有发现计划缓存驱逐.

我需要每天逐出缓存并重新缓存它,以防我的应用程序之外发生一些变化.

java spring spring-cache

6
推荐指数
3
解决办法
9546
查看次数

Viola Jones 与 AdaBoost 算法如何在人脸检测中工作?

我已经阅读了很多关于 Viola Jones 方法的文章,但我仍然不了解矩形特征中的“弱分类器”、“强分类器”、“子窗口”,它们的定义是什么。那么“阈值”呢?我怎么知道阈值?谁能帮我?感谢之前

image-processing face-detection adaboost viola-jones

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

在 Windows 窗体中的按钮单击事件中播放 mp3 文件

如何在 Windows 窗体中的按钮单击事件期间播放 .mp3 文件?

我是 C# 新手,任何指向此的指针都会非常有帮助。

c# mp3 audio-player winforms

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

如何判断Windows窗体是否已打开但是在另一个窗口后面?

无论表单是最大化,最小化还是FormWindowState为Normal,调用Form.Visible都将返回true.

我想知道的是如何判断表单是否打开但是隐藏在另一个应用程序窗口后面.

如果是这种情况,我想把它带到前面,实际上让用户可以看到它.

我尝试了BringToFront()方法,但它没有用.我也试过调用Show()方法但是如果表单在另一个应用程序的窗口后面,它仍然是那样.

我发现问题的唯一解决方法是将Form的FormWindowState设置为Minimized/Maximized然后正常,但这有点像黑客并且看起来不太好.

有人能告诉我如何判断表格是否在另一个窗口后面以及如何将其带到前面?

.net c# .net-2.0 winforms form-control

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