小编Ian*_*oyd的帖子

.NET:如何检查鼠标是否在控件中?

我想知道鼠标是否在 .NET 中的特定控件中

private void panel1_MouseLeave(object sender, EventArgs e)
{
   if (MouseIsInControl((Control)sender)
      return; //the mouse didn't leave, don't fire a MouseLeave event

   ...
}

public Boolean MouseIsInControl(Control control)
{
    //return (control.Bounds.Contains(MousePosition));
    return control.Bounds.Contains(control.PointToClient(MousePosition))
}
Run Code Online (Sandbox Code Playgroud)

但我需要有人摆弄四个不同的坐标系才能使其工作

相关问题

.net winforms

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

如何使UserControl锁定到一定的高度?

不允许用户TextBox垂直调整控件的大小.a的高度TextBox被锁定到文本框应该是理想的高度.

更重要的是,Visual Studio甚至不提供垂直拖动句柄:

在此输入图像描述

我如何为我提供相同的机制UserControl

user-controls winforms

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

如何在C#中使用一组枚举值?

假设我有一个枚举:

namespace System.Windows.Forms
{
   public enum DialogResult { None, OK, Cancel, Abort, Retry, Ignore, Yes, No }
}
Run Code Online (Sandbox Code Playgroud)

我想声明一个由这些枚举类型组成的"集合"

ShowForm(Form frm, DialogResults allowedResults)
Run Code Online (Sandbox Code Playgroud)

在其他语言中,您将声明:

public DialogResults = set of DialogResult;
Run Code Online (Sandbox Code Playgroud)

然后我可以使用

ShowForm(frm, DialogResult.OK | DialogResult.Retry);
Run Code Online (Sandbox Code Playgroud)

C#有Flags的概念,伪代码:

[Flags]
public enum DialogResults { DialogResult.None, DialogResult.OK, DialogResult.Cancel, DialogResult.Abort, DialogResult.Retry, DialogResult.Ignore, DialogResult.Yes, DialogResult.No }
Run Code Online (Sandbox Code Playgroud)

问题不是真正的代码 - Flags不指示编译器创建一组标志.

  • 在一种情况下,类型应该只允许一个值(DialogResult)
  • 在另一种情况下,类型应该允许多个值above(DialogResults)

我怎样才能拥有枚举类型的"集合"

注意:我认为在C#中不可能.如果这就是答案:可以这样说 - 问题得到了回答.

注意:仅仅因为我认为C#语言没有该功能并不意味着它没有该功能 - 我可能还没有找到它.


更新:另一个例子: …

c# enums set

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

如何将项目添加到通用集合?

鉴于:

public static void DoStuff<T>(ICollection<T> source)
{
    Customer c = new Customer();
    ....
    source.Add(c);
}
Run Code Online (Sandbox Code Playgroud)

除了c不是类型<T>.

那么如何将项目添加到通用集合中?


试过:

public static void DoStuff(ICollection<Human> source)
{
    Customer c = new Customer();
    ....
    source.Add(c);
}
Run Code Online (Sandbox Code Playgroud)

但我不使用它,因为没有人可以打电话DoStuff:

ICollection<Customer> c;
DoStuff(c); <---error
Run Code Online (Sandbox Code Playgroud)

因为有关协方差的东西,并且.NET没有意识到Customer来自Human:

class Customer : Human {}
Run Code Online (Sandbox Code Playgroud)

c# collections generic-collections

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

如何隐藏虚拟字符串树中的特定列?

如何隐藏虚拟字符串树中的特定列?

我试过这段代码:

Header.Columns.Items[3].Width := -1;
Run Code Online (Sandbox Code Playgroud)

它显示列,但不显示标题标题.为什么?

delphi virtualtreeview tvirtualstringtree

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

Ctrl +结束TVirtualStringTree的行为

当用户按下Ctrl + End时,VirtualStringTree会垂直跳转到最后,这也很好但也是水平的.我不希望它横向走到尽头.水平滚动应该保持原样.

怎么说出来?

delphi scroll virtualtreeview tvirtualstringtree

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

如何为ASP.net UserControl指定命名空间?

UserControl在ASP.net中有一个:

GrobSelector.ascx.cs:

...
public partial class GrobSelector : System.Web.UI.UserControl
{
   ...
Run Code Online (Sandbox Code Playgroud)

我想在命名空间中包装此类:

GrobSelector.ascx.cs:

...
namespace GrobSelectorNamespace
{
   public partial class GrobSelector : System.Web.UI.UserControl
   {
      ...
   ...       
}
Run Code Online (Sandbox Code Playgroud)

除了现在代码无法编译:

public partial class GrobSelector : System.Web.UI.UserControl
Run Code Online (Sandbox Code Playgroud)

确保此代码文件中定义的类与'inherits'属性匹配,并且它扩展了正确的基类(例如Page或UserControl).

将ASP.net UserControl放入命名空间的正确方法是什么?


奖金Chatter

在前期代码文件包含:

GrobSelector.ascx:

<%@ Control Language="C#" AutoEventWireup="true" CodeFile="GrobSelector.ascx.cs" 
    Inherits="GrobSelector"  %>
Run Code Online (Sandbox Code Playgroud)

奖金阅读

asp.net user-controls namespaces

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

如何查找在SQL Server中注册的程序集?

我有一个在SQL Server中注册的程序集:

CREATE ASSEMBLY [CLRFunctions]
AUTHORIZATION [dbo]
FROM  0x4D5A90000300000...
WITH PERMISSION_SET = SAFE
Run Code Online (Sandbox Code Playgroud)

我怎样才能找到这个组件的路径?

sql-server sqlclr sql-server-2008-r2

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

如何将 UserControl 拖入工具箱?

我有一个UserControl想要使用的 ASP.net :

在此处输入图片说明

按照 Visual Studio 中的说明进行操作:

该组中没有可用的控件。
将项目拖到此文本上以将其添加到工具箱。

我尝试将项目拖到该文本上以将其添加到工具箱中:

在此处输入图片说明

不幸的是,将项目拖到该文本上不会将其添加到工具箱中:

在此处输入图片说明

所以这就提出了一个问题:

如何将 UserControl 拖入工具箱?

笔记

  • 构建或重建不会自动将控件添加到工具箱中
  • 选择项目”对话框不包括用户控件

asp.net user-controls visual-studio-2010 webusercontrols visual-studio

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

如何从TVirtualStringTree中删除所有节点?

如何在事件处理程序中删除所有节点,包括VirtualStringTree后代,关闭包含VirtualStringTree的表单?

delphi virtualtreeview delphi-xe tvirtualstringtree

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