小编Bil*_*soe的帖子

如何将变量传递给按钮事件方法?

我需要能够将两个对象传递给单击按钮时被触发的方法.我该怎么做呢?

到目前为止,我一直在寻找创建一个已更改的eventArgs:

 public class CompArgs : System.EventArgs
    {
    private object metode;
    private Type typen;

    public CompArgs(object m, Type t)
    {
        this.metode = m;
        this.typen = t;
    }

    public object Metode()
    {
        return metode;
    }

    public Type Typen()
    {
        return typen;
    }
}
Run Code Online (Sandbox Code Playgroud)

但是我该如何使用它呢?是否有可能以某种方式覆盖按钮的单击事件以使用自定义事件处理程序,它将CompArgs作为参数?

private void button1_Click(object sender, EventArgs e)
        {


            Assembly assembly = Assembly.LoadFile(@"c:\components.dll");

            int counter = 0;

            foreach (Type type in assembly.GetTypes())
            {
                if (type.IsClass == true)
                {

                    Button btn = new Button();
                    btn.Location = new Point(174 + (counter …
Run Code Online (Sandbox Code Playgroud)

c# events

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

有没有办法检测用户控件外的鼠标点击?

我正在创建一个自定义下拉框,我想在下拉框外单击鼠标时进行注册,以便隐藏它.是否可以检测到控件外的点击?或者我应该在包含的表单上制作一些机制,并在任何下拉框打开时检查鼠标点击?

用户控制

c# user-controls mouseevent winforms

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

如何在组合框中显示枚举值?

如何在组合框中显示枚举值?下面的代码导致组合框的所有显示名称都是"caseHandler.cState".我希望它具有枚举值的实际名称.

我的枚举定义如下:

public enum caseState
{
    Active = 1,
    Finished,
    Problem
}
Run Code Online (Sandbox Code Playgroud)

我有一个定义为这样的类:

public class cState
{    
    public string _name;
    public int _id;

    public cState(int id,string name)
    {
        _name = name;
        _id = id;
    }
}
Run Code Online (Sandbox Code Playgroud)

填充我的组合框的代码:

ArrayList AL = new ArrayList();

foreach (string cs in Enum.GetNames(typeof(caseState)))
{
    cState aEnum = new cState((int)Enum.Parse(typeof(caseState),cs),cs);
    AL.Add(aEnum);
}


cbState.DisplayMember = "_name";
cbState.ValueMember = "_id";

cbState.DataSource = AL;
Run Code Online (Sandbox Code Playgroud)

c# enums combobox winforms

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

在进行运行时程序集加载时,如何仅查找声明的方法?

我正在进行运行时程序集加载,但我不知道任何类或方法的名称.我不想用我们声明的方法列出我的程序集中的所有类,而不是从System.Object继承的那些类.

这是代码:

string str = "";   
Assembly assembly = Assembly.LoadFile(@"c:\components.dll");    

foreach (Type type in assembly.GetTypes())
{
    if (type.IsClass == true)
    {    
        str += type.Name + "\n";    
        MethodInfo[] methodInfo = type.GetMethods(BindingFlags.DeclaredOnly);

        foreach (MethodInfo mi in methodInfo)
        {    
            str += "\t" + mi.Name + "\n";    
        }    
    }
}

MessageBox.Show(str);
Run Code Online (Sandbox Code Playgroud)

这是components.dll:

public class component01
{    
    public string myName = "component01";
    public string getMyName()
    {
        return myName;
    }
}

public class component02
{    
    public string myName = "component02";

    public string getMyName()
    {
        return myName; …
Run Code Online (Sandbox Code Playgroud)

.net c# reflection load assemblies

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

为什么设置window.location.href不会停止脚本执行

以下代码将位置更改为www.bing.com,无论重定向是否为1或任何其他数字.如果重定向为1,则记录"正在重定向",然后重定向到www.bing.com.我最好的猜测是,当设置href时,会触发change-event,但在执行之前需要一些滴答.同时,第一行代码仍然执行.要么?做什么会发生什么?

if (redirect == 1) {
    console.log("is redirecting");
    window.location.href = "http://www.google.com";
}

window.location.href = "http://www.bing.com";
Run Code Online (Sandbox Code Playgroud)

javascript redirect

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

如何调整我构建的自定义控件的大小

我正在使用以下代码调整自定义控件的大小:

private void Form1_Resize_1(object sender, EventArgs e)
{

    textBox1.Text = this.Width.ToString();
    textBox2.Text = (this.Height - 200).ToString();

   canvas21.Size = new System.Drawing.Size(this.ClientSize.Width,  this.ClientSize.Height - this.Top - 15);

    canvas21.Invalidate();

}
Run Code Online (Sandbox Code Playgroud)

我只想让自定义控件(0,105)的左上角保持原位,并且控件要随表单一起调整大小,但由于某种原因,这不起作用.当我调整控件的大小时保持原位,但会自动调整大小以填写表单的其余部分.

表单布局概述

有没有办法获得影响用户控件大小的所有内容的列表.为了搜索我设置的其他地方,我可能会忽略这些地方?

c# resize custom-controls winforms

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

如何在Winform上读取键盘输入?

我已经尝试使用KeyUp和KeyDown事件来读取键盘输入,但是只要我在Winform上放置其他控件,就不会读取键.如何确保读取密钥?

c# keyboard winforms

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

什么是MATLAB的MathNet等价物解决C = A\B

我最近开始使用MathNet来实现我们的线性代数,但是我在将MATLAB函数转换为MathNet时遇到了一些麻烦.

在MATLAB中,我经常使用反斜杠运算符来简单求解:

C = A\B

MathNet中的等价物是什么?

我使用C = Inv(A)*B在小矩阵中得到相同的结果,但我不知道结果是否精确.

c# matlab solver math.net

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

是否有可能在winforms上使用otf字体?

我尝试过使用Open Type Fonts作为标签,文本框以及在绘画事件中绘图时.但它不起作用.有没有办法让Open Type Font工作?

c# opentype winforms

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

C#:是否有必要在自定义控件中处理图形元素?

我已经创建了一个自定义控件,覆盖了它的paint事件.当我尝试处理我创建的图形时,它们就会从屏幕上消失.我不需要在自定义控件中使用dispose吗?

编辑:我已经包含了一个代码片段.为什么我不能处理从PaintEventArgs创建的dc图形对象?我需要处理它吗?

class canvas : Control
    {

        PointF mouseDown;

        float newX;
        float newY;
        float zoomFactor = 1F;

        Graphics _dc;

        public canvas()
        {
            this.DoubleBuffered = true;
            mouseDown = new PointF(0F, 0F);
            this.Paint += new PaintEventHandler(ctrl_Paint);
        }

        private void ctrl_Paint(object sender, PaintEventArgs e)
        {


            Graphics dc = e.Graphics;
            _dc = dc;

            dc.SmoothingMode = SmoothingMode.AntiAlias;

            Color gridColor = Color.FromArgb(230, 230, 230);
            Pen gridPen = new Pen(gridColor, 1);

            float offX = (float)((Math.Sqrt(Math.Pow(newX, 2)) % (30 * zoomFactor)));
            float offY = (float)((Math.Sqrt(Math.Pow(newY, 2)) % (30 …
Run Code Online (Sandbox Code Playgroud)

c# graphics gdi+ custom-controls

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