小编Sae*_*ani的帖子

在哪里可以找到有关WM Windows消息代码的信息?

我看到这里和那里的专业用户回答很多像我这样的问题,比如WM_PAINT = 0xf 我应该搜索什么来获得这些代码的完整列表?所有的窗户都是一样的吗?他们还可以用于其他平台吗?

c# windows-messages winforms

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

如何检查字符串是否以LINQ查询中的大写字母开头

我有以下代码,我试图获得以资本开头的字符串,但我不知道如何!没有linq我可以做但在LINQ里面......不知道!

        string[] queryValues1 = new string[10] {"zero", "one", "two", "three", "four", "five", "six", "seven","nine", "ten" };
        string[] queryValues2 = new string[3] { "A", "b", "c" };

        var queryResult =
            from qResult in queryValues1
            from qRes in queryValues2
            where qResult.Length > 3
            where qResult.Length < 5
            where qRes[0].StartWithCapital //how to check if qRes started with a capital letter?
            select qResult + "\t" + qRes + Environment.NewLine;

        foreach (var qResult in queryResult)
        {
            textBox1.Text += qResult;
        }
Run Code Online (Sandbox Code Playgroud)

c# linq

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

TableLayoutPanel对事件的响应非常缓慢

在我的应用程序中,我真的需要放置很多控件(标签,文本框,domainupdown).所以我继续使用了一些嵌套TableLayoutPanel.现在的问题是,这种形式对大多数事件响应非常缓慢(调整大小,最大化,最小化和......)表格中的控件实际需要花费5秒才能调整大小,重新绘制到新的表单大小.

我现在把手指放在眼睛里!如果这个表格在我的家用电脑上很慢(i7 @ 4GHz和一张好的显卡)它会在旧的P4电脑上运行吗?

我甚至尝试使用下面的代码,但它绝对没有任何东西,如果它不会减慢它的速度!

private void FilterForm_ResizeBegin(object sender, EventArgs e)
{
    foreach(TableLayoutPanel tlp in panelFilters.Controls)
    {
        if(tlp != null)
        {
            tlp.SuspendLayout();
        }
    }
}

private void FilterForm_ResizeEnd(object sender, EventArgs e)
{
    foreach (TableLayoutPanel tlp in panelFilters.Controls)
    {
        if (tlp != null)
        {
            tlp.ResumeLayout();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

请告诉我是否有一个技巧可以让tablelayoutpanel更快地工作......或者如果你知道一个更好的方法来放置大约数百个很好地对齐的控件.

c# performance tablelayoutpanel winforms

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

按下后退按钮时会调用onDestroy()

在我的Activity中,我已经覆盖onDestory()并只是调用日志来显示是否正在调用此方法.(在Android 4.2.2和4.4.4上测试过)

@Override
protected void onDestroy() {
    Log.i(TAG, "onDestroy() was called");
    super.onDestroy();
}
Run Code Online (Sandbox Code Playgroud)

当我按下后退按钮时,会调用此方法(我看到了日志).

我相信除非手机内存不足或其他东西,否则不会发生这种情况.我在应用程序中没有太多东西,但MainActivity和一些片段.

当用户在MainActivity中并按下后退按钮时,这是日志:

I/MainActivity? onBackPressed() was called
I/MainActivity? onStop() was called
I/MainActivity? onDestroy() was called
Run Code Online (Sandbox Code Playgroud)

为什么会这样?

我也查isFinishing()onPause(),它总是返回true

来自Javadoc:

在销毁活动之前执行任何最终清理.这可能是因为活动正在完成(有人称之为完成,或者因为系统暂时销毁此活动实例以节省空间.您可以使用isFinishing方法区分这两种情况.注意:不要指望这个方法被称为保存数据的地方!

android android-lifecycle

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

c#中的字符串操作

我有一个像这样的字符串,这是由一些反斜杠分隔的一些名称:

string mainString = @"Sean\John\Rob\fred";
Run Code Online (Sandbox Code Playgroud)

如何获得上面字符串格式的姓氏,在本例中为"fred",而我希望名称是字符串中的姓氏(在所有反斜杠之后)?

谢谢.

.net c# string

5
推荐指数
3
解决办法
2481
查看次数

如何在控件具有焦点时使用键盘关闭WinForm

我如何关闭我的C#WinForms程序,同时有一些控件,如树视图,按钮和其他东西都存在于它们,他们有焦点,可能是他们有相同的键盘快捷键?

例如,在我的树视图中,如果按ALT + ESC键,节点将被删除.但我希望能够通过按ESC键调用'this.Close()'方法,无论是否有任何控件都有焦点.

谢谢.

c# keyboard-shortcuts winforms

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

如何解析像"-2.000000e + 000"这样的数字

我试图从xml文件中读取一些数据,数字以"-2.000000e + 000"等形式保存

我试图使用"double.Parse",但它返回的数字为-2000000 !!!! 有谁能告诉我我做错了什么?

c# double parsing

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

折叠和扩展SplitContainer面板

我的winform应用程序中有3个拆分容器. splitContainer1, splitContainer2, splitContainer3

splitContainer1是主要的拆分容器.在它的panel1中我放了splitContainer2,在它的panel2中我有splitContainer3

然后我添加了两个按钮来折叠/隐藏splitContainer3面板:每当我点击一个按钮时,它就会折叠,但是当我想要折叠2个面板时,其中一个会自动再次展开可能会出现什么问题?

private void btToggleCI_Click(object sender, EventArgs e)
{
    switch (splitContainer3.Panel1Collapsed)
    {
        case false:

            splitContainer3.Panel1Collapsed = true;
            btToggleCI.ForeColor = Color.Gray;

            break;

        case true:

            splitContainer3.Panel1Collapsed = false;
            btToggleCI.ForeColor = Color.Black;

            break;
    }
}

private void btToggleTestPlan_Click(object sender, EventArgs e)
{
    switch (splitContainer3.Panel2Collapsed)
    {
        case false:

            splitContainer3.Panel2Collapsed = true;
            btToggleTestPlan.ForeColor = Color.Gray;

            break;

        case true:

            splitContainer3.Panel2Collapsed = false;
            btToggleTestPlan.ForeColor = Color.Black;

            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# splitcontainer winforms

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

用等效字符串表示Char

我有以下类作为DataSourceListBox:

class SeparatorChars
{
    /// <summary>
    /// Text to describe character
    /// </summary>
    public string Text { get; set; }

    /// <summary>
    /// Char value of the character
    /// </summary>
    public char Value { get; set; }

    /// <summary>
    /// Represent object as string
    /// </summary>
    /// <returns>String representing object</returns>
    public override string ToString()
    {
        return Text + " '" + Value + "'";
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是,默认情况下这将使用Valuejust作为添加到字符串的常规字符,例如,如果我Tab像这样定义此类:

var TabSeparator = new SeparatorChars {Text = …
Run Code Online (Sandbox Code Playgroud)

c# string formatting char

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

计算两条曲线之间的面积

我正在研究一个比较两条曲线的程序(由二极管输出产生的电压/电流曲线).

我想计算这两条曲线之间的面积(蓝色曲线是第一个二极管,RED是第二个曲线).

在此输入图像描述

每条曲线有51个数据点(它们总是具有相同数量的数据).我现在正在做的是这样的:

public double CalculateArea(double[,] pin1, double[,] pin2)
{
    double voltageArea = 0;
    double currentArea = 0; //Current (Vertical axis) not yet!
    double max = 0;
    double min = 0;

    for (int i = 0; i < pin1.GetLength(0); i++)
    {
        max = Math.Max(Math.Abs(pin1[i, 0]), Math.Abs(pin2[i, 0]));
        min = Math.Min(Math.Abs(pin1[i, 0]), Math.Abs(pin2[i, 0]));

        voltageArea += max - min;
    }

    return voltageArea;
}
Run Code Online (Sandbox Code Playgroud)

这段代码以某种方式工作,记住我对Current(垂直轴)什么都不做.如果结果接近0,例如0.05,那么曲线之间的差异是可以得到的.但我确信这不是正确的方法,我完全不知道我写的方法的结果是什么......似乎只是电压点之间的区别.

如果你能帮助我改进这种方法,我真的很高兴.

c# math graph

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