小编Sae*_*ani的帖子

XPath通配符和contains()函数用法

我在使用XPath时遇到问题并包含函数.想象一下下面的XML示例:

   <doc>  
     <Test>
       <Name>1 Pre Histoy</Name>
       <Type>Known</Type>
       <Data>
          <Name>Dinasor</Name>
          <Name>Fish</Name>
      </Data>
      </Test>

      <Test>
        <Name>1 Post Histoy</Name>
        <Type>Known</Type>
        <Data>
          <Name>Human</Name>
          <Name>Dog</Name>
        </Data>
     </Test>

      <Test>
        <Name>1 Post Histoy</Name>
        <Type>UNKNOWN</Type>
        <Data>
          <Name>Human</Name>
          <Name>Dog</Name>
        </Data>
     </Test>  

  </doc>
Run Code Online (Sandbox Code Playgroud)

所以我想做的是返回节点<Name>内的所有文本<Data>,并遵循以下标准:

  1. doc//Test/Name 应包含"Pre"文本

  2. doc//Test/Type 应该是"知名的"

我需要的是这样的查询,但到目前为止我无法管理它

/doc//Test[Name contains(.,'Pre') and Type='Known']/data//Name
Run Code Online (Sandbox Code Playgroud)

任何帮助和提示将不胜感激.

xml xpath contains

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

从另一个子表单打开子表单并将MDI设置为父表单 - 怎么办?

我有一个MDI表格.在此MDI表单中,我可以使用以下命令打开一些子表单:

这是在 MainForm

Form1 f1 = new Form1;
f1.MdiParent = this; //this refers to MainForm (parent)
f1.Show();
Run Code Online (Sandbox Code Playgroud)

这按预期工作!

但是现在,当我处于子形式(Form1 - > f1)时,我想打开另一个形式作为孩子,MainForm但是当我使用this关键字时,它会受到影响f1.如何打开新表单f1并将其设置MdiParentMainForm

c# mdiparent mdichild winforms

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

查询TreeNodeCollection

我在Windows窗体UI上有一个treeview控件,它有几个节点(有多个子节点).我想查询节点集合,以便比如说1.选择名称以'x'开头的
那些2.选择那些在Node.Tag字段中没有任何数据的节点.

有人可以建议我这样做的方法.Linq会让它变得简单和整洁,但我在Linq上找不到任何查询TreeNodeCollection的内容.

谢谢,

c# linq winforms

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

保持PictureBox在容器内居中

我正在设计一个简单的图片浏览器,能够进行一些基本的图像处理.目前我的问题PictureBoxTabPage始终保持居中,并保持图片框的宽度和大小与其显示的图片相同.到目前为止,我没有成功.

我有以下代码,我在表单构造函数中调用它来将其定位在中心.它第一次使图片框居中:

private void SetPictureBoxOriginalSizeAndLocation(bool makeImageNull = false, DockStyle dockStyle = DockStyle.None)
{
    if (makeImageNull) picBoxView.Image = null;
    picBoxView.Dock = dockStyle;

    var xPoint = tabImageView.Location.X + ((splitContainer.Panel2.Width / 2) / 2);
    var yPoint = tabImageView.Location.Y;

    var width = tabImageView.Width / 2;
    var height = (tabImageView.Height / 2) - toolStripImageView.Height;

    if (picBoxView.Image == null) return;

    //Resize image according to width
    picBoxView.Image = ImageMethods.ResizeImage(picBoxView.Image.Tag.ToString(), width, height, false); 

    picBoxView.Location = new Point(xPoint, yPoint);
    picBoxView.Width = width;
    picBoxView.Height = height; …
Run Code Online (Sandbox Code Playgroud)

c# picturebox winforms

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

检测手机是否在口袋中

这个问题并不完全是关于代码而是实现.

我正在开发一款需要检查手机是否放入口袋的应用程序.我有一个简单的算法来检测行走时的用户步骤.问题是手中的移动也可以注册为一个步骤,例如当用户运行应用程序并将步骤值从他/她执行此操作的时间归零到手机放在口袋中时,应用程序会注册几个步骤.

我的想法是检查接近传感器,看看手机是否放在口袋里.

我对加速计传感器的处理是我继续读取缓冲区中的加速度计值,当缓冲区满了,然后计算步数(计算时,缓冲区仍在接受新的加速度计读数).

因为我听说接近传感器是基于中断而不是基于轮询的(如acc传感器).我如何将这两者协调在一起?

如果我在将acc值写入缓冲区之前检查接近度是否安全,并在计算开始时再次检查它,如果接近度不是FAR模式,我可以假设手机放在口袋里?

欢迎任何建议!

android proximity proximitysensor

10
推荐指数
0
解决办法
1234
查看次数

将所有treeView父级和子级复制到另一个treeView c#WinForms

我试图使用以下代码将树视图(完全)的整个树(完全所有节点)复制到另一个树视图:

        TreeNodeCollection myTreeNodeCollection = treeView1.Nodes;

        TreeNode[] myTreeNodeArray = new TreeNode[treeView1.Nodes.Count];

        treeView1.Nodes.CopyTo(myTreeNodeArray, 0);

        treeView2.Nodes.AddRange(myTreeNodeArray);
Run Code Online (Sandbox Code Playgroud)

但这不允许我这样做,它要求删除源treeview中的节点或使用它克隆!我怎样才能做到这一点?我不希望我的源treeview在这个过程中丢失任何东西.

**更新**好的我发现了一个复杂的代码(对我来说!!)但是我该如何使用它?

    public static T DeepTreeCopy<T>(T obj)
    {
        object result = null;
        using (var ms = new MemoryStream())
        {
            var formatter = new BinaryFormatter();
            formatter.Serialize(ms, obj);
            ms.Position = 0;
            result = (T)formatter.Deserialize(ms); ms.Close();
        }
        return (T)result;
    } 
Run Code Online (Sandbox Code Playgroud)

c# treeview clone copy

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

将树视图的内容保存到文件并稍后加载

在我的C#WinForms程序中,我有一个只包含父节点的树视图(因此,没有子节点)它就像一个列表框,但我需要它,因为它具有Name,Tag和Text等节点的不同属性.

不,我希望能够将此树视图的内容保存到文件中(基本上是一个文本文件,我称之为*.MVIA).问题是什么是保存文件中节点的所有三个属性的最佳方法,以便以后可以再次加载?

目前我提出了这个想法:

    private void menuFileSave_Click(object sender, EventArgs e)
    {
        StringBuilder sb = new StringBuilder();

        foreach(TreeNode node in treeViewFiles.Nodes)
        {
            sb.AppendLine(node.Name);
        }

        SaveFileDialog saveList = new SaveFileDialog();

        saveList.DefaultExt = "*.mvia";
        saveList.Filter = "MVIA Files|*.mvia";

        if (saveList.ShowDialog() == DialogResult.OK)
        {
            File.WriteAllText(saveList.FileName, sb.ToString());
        }            
    }
Run Code Online (Sandbox Code Playgroud)

如您所见,每个节点的每个Name属性都将保存在一行中.现在我还需要添加它的Text和Tag属性,但后来我很难读回来(老实说我不知道​​怎么做).

你能给我一些想法,保存每个节点的所有三个属性的最佳方法是什么,以后能够轻松加载它?

谢谢.

c# treeview serialization winforms

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

比较一个类的两个实例

我有这样的课

public class TestData
{
   public string Name {get;set;}
   public string type {get;set;}

   public List<string> Members = new List<string>();

   public void AddMembers(string[] members)
   {
      Members.AddRange(members);
   }   
}
Run Code Online (Sandbox Code Playgroud)

我想知道是否有可能直接与这个类的实例进行比较,并发现它们完全相同?机制是什么?我正在寻找类似的东西if(testData1 == testData2) //Do Something,如果没有,怎么办呢?

c# class object instance

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

在曲线周围绘制一个信封

在我的C#WinForms应用程序中,我有一个托管2条曲线的图片框(由电压/电流测量引起).X轴是电压,Y轴是电流.电压轴的范围为-5到5,但电流轴的范围小得多,范围从-10 uA到10 uA.任务是查看第二条曲线是否在第一条曲线的10%范围内.

为了目视检查,我试图围绕第一条曲线绘制一个信封(蓝色).曲线只是一个PointF数组.目前因为我不知道如何在蓝色曲线周围绘制一个正确的包络线,我只绘制了另外两条曲线,这些曲线是实际曲线的X点加上并减去原始曲线的10%.当然这是一个糟糕的方法,但至少曲线的部分是明显垂直的,它起作用.但是一旦曲线处于非垂直部分,这个技巧就不再起作用了,如下图所示:

在此输入图像描述

这是我用来绘制信封的代码:

public Bitmap DrawEnvelope(double[,] pinData, float vLimit, float iLimit)
{
    g = Graphics.FromImage(box);
    g.SmoothingMode = SmoothingMode.AntiAlias;
    g.PixelOffsetMode = PixelOffsetMode.HighQuality;

    PointF[] u = new PointF[pinData.GetLength(0)]; //Up line
    PointF[] d = new PointF[pinData.GetLength(0)]; //Down Line
    List<PointF> joinedCurves = new List<PointF>();

    float posX = xMaxValue * (vLimit / 100);
    float minX = posX * -1;


    for (int i = 0; i < pinData.GetLength(0); i++)
    {
        u[i] = new PointF(400 * (1 + (((float)pinData[i, 0]) + minX) / …
Run Code Online (Sandbox Code Playgroud)

c# math winforms

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

在Ubuntu中将库添加到Java CLASSPATH

我不确定我的问题是否与Ubuntu或Java有关,所以请原谅我!

我正在尝试编译java程序,但是我收到以下错误:

package javax.comm does not exist
Run Code Online (Sandbox Code Playgroud)

我已经下载了所需的软件包,comm.jar但我不知道如何/在哪里安装/复制此文件.

我在某处读到这应该在CLASSPATH 文件夹中,但我没有这个文件夹.

这就是我得到的,java -version我想这意味着我已经在我的系统中安装了Java:

java version "1.6.0_24"
OpenJDK Runtime Environment (IcedTea6 1.11.4) (6b24-1.11.4-1ubuntu0.12.04.1)
OpenJDK Server VM (build 20.0-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)

我也有这些文件夹/usr/lib/jvm/:

default-java             java-1.7.0-openjdk-i386  java-6-openjdk-i386
java-1.6.0-openjdk       java-6-openjdk           java-7-openjdk-common
java-1.6.0-openjdk-i386  java-6-openjdk-common    java-7-openjdk-i386
Run Code Online (Sandbox Code Playgroud)

java ubuntu

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