小编Rém*_*émi的帖子

用户控件上下文菜单?

我写了一个usercontrol,实质上是一个小部件的调色板.当用户右键单击我在控件上绘制的其中一个小部件时,我希望允许用户删除所选小部件.

在我的usercontrol的MouseClick事件处理程序中,我确定用户单击了哪个窗口小部件.然后我检查鼠标按钮是否是正确的按钮.如果是这样,我会显示一个菜单,允许用户删除小部件:

if (e.Button == MouseButtons.Right)
{
    ContextMenu deleteMenu = new ContextMenu();
    MenuItem deleteItem = new MenuItem("Delete...", new System.EventHandler(this.onDeleteMenuItem_Click));
    deleteMenu.MenuItems.Add("Delete");
    deleteMenu.Show(this, new Point(mouseXPosition, mouseYPosition));
}
Run Code Online (Sandbox Code Playgroud)

我的这个项目的处理程序是:

private void onDeleteMenuItem_Click(object sender, EventArgs e)
{
    System.Diagnostics.Debug.WriteLine("Deleting...");
}
Run Code Online (Sandbox Code Playgroud)

当我右键单击时,会显示菜单,但处理程序永远不会被调用.我究竟做错了什么?

c# user-controls contextmenu

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

以编程方式从一个选项卡切换到其他选项卡

在a Windows Form,同时使用tabControl1如何从一个选项卡切换到另一个(即tabPage1到tabPage2)按钮单击tabPage1中.

tabPage2.Show(); 
tabControl1.SelectedIndex = tabPage2; 
Run Code Online (Sandbox Code Playgroud)

等但不给任何o/p ...请帮助

c# winforms

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

从基类继承

假设我有这个课程:

class foo
{
    public foo(Guid guid)
    {
        //some code here
    }

    public foo(Guid guid, bool myBool)
    {
        //some other code here
    }

    //Here I have a bunch of method/properties

    public void GenX(bool french, int width)
    {
        //my method implementation
    }
}
Run Code Online (Sandbox Code Playgroud)

我有另一个基本上完全相同的类,foo除了这个方法的实现,public GenX(bool french, int width)并且construtor必须foo与实现不同.

如果我以bar这种方式实现编译器抱怨:'foo' does not contain a constructor that takes '0' arguments

class bar : foo
{
    public bar(Guid guid, bool myBool)
    {
        //some code here …
Run Code Online (Sandbox Code Playgroud)

.net c# oop

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

.NET char数组比较

我有以下c#方法从提议的名称中获取有效的文件名:

public static string GetValidFilename(string fileNameCandidate)
{
    var invalids = System.IO.Path.GetInvalidFileNameChars();
    var _name = fileNameCandidate.ToCharArray();
    var validName = _name.Except(invalids).ToArray();
    return new string(validName);
}
Run Code Online (Sandbox Code Playgroud)

我所期望的是原始名称,其中删除了残留的无效字符.但是,我得到的是具有无效文件名字符的原始名称和其他删除的名称.
例如,如果我使用"ems:almcc_srr_view"作为输入参数调用方法,我期望"emsalmcc_srr_view作为输出.我得到的是"emsalc_rviw"作为输出.我错过了什么?

c# char

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

将一个继承的类转发给基类

假设我有一个基类

class baseClass
{  }
Run Code Online (Sandbox Code Playgroud)

另一个继承自那个的类 baseClass

class foo : baseClass
{  }
Run Code Online (Sandbox Code Playgroud)

我试图直接将其强制转换,(baseClass)foo但编译器说它无法完成.

有没有办法foo只获得baseClass

c# inheritance

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

为什么我的自定义事件会抛出异常?

我正在编写一个记录用户空闲时间的程序,但是当我尝试运行该程序时,它会抛出一个Stack Overflow异常.

这些是我的自定义事件

public void OnInactive(EventArgs e)
{
    this.OnInactive(new EventArgs());
    do
    {
        var idle2 = GetIdleTime();
        GetIdleTime();
        System.Diagnostics.Debug.WriteLine(idle2);
    }
    while (timer.Interval > 5000);
}

public void OnActive(EventArgs e)
{
    this.OnActive(new EventArgs());
    if (timer.Interval < 5000)
    {
        var idle3 = GetIdleTime();
        System.Diagnostics.Debug.WriteLine(idle3);
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经打破了代码,试图找到问题的根源,这似乎在于this.OnInactive(new EventArgs());,但是我很难解决如何解决这个问题,因为我是自定义事件的初学者并且没有编码C#很久了.

对此问题的任何和所有帮助将不胜感激!

在先感谢=]

c# events

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

标签 统计

c# ×6

.net ×1

char ×1

contextmenu ×1

events ×1

inheritance ×1

oop ×1

user-controls ×1

winforms ×1