小编hel*_*elb的帖子

C# - 在程序中隐藏鼠标光标

我一直在寻找这个问题的资源,但找不到我想要的。我在 WPF 中有一个 C# 应用程序,它使用触摸屏,在屏幕上为用户提供鼠标光标。问题是我想隐藏这个鼠标光标,但是当我在后端运行程序时,应用程序应该显示鼠标光标。

有没有人对从哪里开始有什么好的建议?

c# wpf visual-studio mouse-cursor

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

在 DataGridTextColumn 中绑定 ViewModel 属性

对于一个应用程序,我需要创建一个DataGridDataGridTextColumn它有MultiBinding。第一个Binding使用 ItemsSource 中给出的属性,第二个Binding应该使用我的 ViewModel 中的属性。

<DataGridTextColumn Header="Hourly wage" SortMemberPath="HourlyWage">
    <DataGridTextColumn.Binding>
        <MultiBinding StringFormat="{}{0}{1}">
            <Binding Path="HourlyWage" />
            <Binding Path="CurrencyUnit" />
        </MultiBinding>
    </DataGridTextColumn.Binding>
</DataGridTextColumn>
Run Code Online (Sandbox Code Playgroud)

在这种情况下HourlyWage是当前项目的属性。CurrencyUnit是我的 ViewModel 中的一个属性。如果我启动我的应用程序,此列是空的。那么我如何让它同时显示呢?

我使用 Catel 作为我的 MVVM 框架和 MahApps.Metro 作为我的 GUI。我无法在我的视图中创建 ViewModel,因为它由 Catel 处理。

问候, 斯特凡

c# data-binding wpf mvvm catel

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

在多维System.Collection.IList中快速查找

我需要您的以下建议。

我有一个多维IList,其中包含具有索引,Id和Text的项目。通常,我知道Id的值,并据此获取Text。从数据库读取Id和Text值。

我们当前用于获取Text字段值的是:

foreach (Object myObj in List) 
{
    if (((MessageType)myObj).Id == id) 
    {
        return ((MessageType)myObj).Text;
    }
}
Run Code Online (Sandbox Code Playgroud)

当IList中的计数变大(大于32K)时,需要一些时间来处理。

问题:有没有一种方法可以有效地获取Text值而无需遍历IList?

我尝试没有成功的事情

  • 使用List.IndexOf(Id)-无效,因为IndexOf仅适用于文本。
  • 将List转换为多维数组-我的猜测对List.CopyTo(array,0)失败,因为它是多维的:string [] array = new string [List.Count,List.Count]; List.CopyTo(array,0);

我不能使用AJAX / JQuery解决方案,因为它是一个现有的(活动)项目,并且重新编码将花费太多时间。

谢谢

c# arrays lookup performance multidimensional-array

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

如何用连续实例替换字符串?

编辑

@Ulugbek - 我已编辑提问以澄清.

我使用模式作为分隔符,需要通过使用C#在模式之间插入$来替换连续的模式出现,但目前它只替换模式的第一个实例.

除了多次替换之外,还有什么我需要做的吗?或者,我需要使用RegEx吗?

谢谢

String s = "ABCThis is a delimited valueABCABCABCAnd another delimited valueABC";
String.Replace("ABCABC", "ABC$ABC"); //misses second instance of the consecutive patterns instances 
Run Code Online (Sandbox Code Playgroud)

结果:

ABCT这是一个分隔的值ABC $ ABCABCA和另一个分隔的值ABC

期望的结果:

ABCT这是一个分隔的值ABC $ ABC $ ABCA另一个分隔的值ABC

Ulugbek解决方案:

ABC $这是一个分隔的值ABC $ ABC $ ABC $和另一个分隔的值ABC $

谢谢

c# regex replace

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

使用存储在数据库中的字符串编码问题

我有一个编码问题.我的MongoDB中有错误编码的文本.我的数据库中文本的源文件以ISO-8859-1编码.现在,在我的数据库中查看它时,一些字符被打破(变成' ').

目前,在从db检索文本时,我尝试了以下代码.

var t = Collection.FindOne(Query.EQ("id", "2014121500892"));
string message = t["b203"].AsString;
Console.WriteLine(ChangeEncoding(message));
Run Code Online (Sandbox Code Playgroud)

第一次尝试:

static string ChangeEncoding(string message)
{

    System.Text.Encoding srcEnc = System.Text.Encoding.GetEncoding("ISO-8859-1");
    System.Text.Encoding destEnc = System.Text.Encoding.GetEncoding("UTF-8");
    byte[] bData = srcEnc.GetBytes(message);
    byte[] bResult = System.Text.Encoding.Convert(srcEnc, destEnc, bData);
    return destEnc.GetString(bResult);
}
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

static string ChangeEncoding(string message)
{
    File.WriteAllText("text.txt", message, Encoding.GetEncoding("ISO-8859-1"));
    return File.ReadAllText("text.txt");
}
Run Code Online (Sandbox Code Playgroud)

db中的示例文本:

Box aus Pappef rA8-Lernk rtchen

期望的结果:

我希望能够在控制台中将其打印为:

Box ausPappefürA8-Lernkärtchen

c# unicode encoding mongodb-.net-driver

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

Char连接

我有30个文件要在C中打开.

phantom_atn_1.bin phantom_atn_2.bin ... phantom_atn_30.bin

我正在尝试以下但它不起作用:

#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

char filename[100],filename1[100],extension1[100];
int fileNum,frameNum;


main()
{
    printf("Test1\n");
    frameNum=30;

    strcpy (extension1, ".bin");

    for (fileNum=1;fileNum<frameNum+1;fileNum++)
    {
        printf("Test2\n");
        strcpy (filename1, "phantom_atn_");
        printf("Test3\n");  
        printf(filename1); 
        printf("\n");  
        printf(filename,"%d", fileNum); 
        printf("Test5\n");  
        sprintf(filename,"%d", fileNum); 
        printf("Test6\n");  
        strcat(filename1,extension1);     
        printf("Test7\n");
        printf(filename);
        printf("Test8\n");
        printf(filename);
        image1=fopen(filename,"rb");
    }
};
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激.

c string concatenation char

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

计算c#中两点之间的距离

我使用这个代码,它取两个不同位置的经度和纬度,并计算我的代码之间的距离

protected void Button1_Click(object sender, EventArgs e)
{
    double lat1= Convert.ToDouble(TextBox1.Text);
    double lon1= Convert.ToDouble(TextBox2.Text);
    double lat2= Convert.ToDouble(TextBox3.Text);
    double lon2= Convert.ToDouble(TextBox4.Text);

    var rlat1 = Math.PI * lat1/180;
    var rlat2 = Math.PI * lat2/180;
    var rlon1 = Math.PI * lon1/180;
    var rlon2 = Math.PI * lon2 / 180;
    var theta = lon1-lon2;
    var rtheta = Math.PI * theta/180;
    var dist = Math.Sign(rlat1) * Math.Sign(rlat2) + Math.Cos(rlat1) * Math.Cos(rlat2) * Math.Cos(rtheta);
    dist = Math.Acos(dist);
    dist = dist * 180/Math.PI;
    dist = dist * …
Run Code Online (Sandbox Code Playgroud)

c# google-maps latitude-longitude

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

出现错误:如果您缺少强制转换,则无法将 double 类型隐式转换为 int

所以我正在尝试制作一个简单的 CSGO 项目值到键值计算器。我是一个初学者程序员,我收到了这个错误。在谷歌搜索这个错误之后,我似乎找不到问题所在。任何人都可以提供帮助?

private void button1_Click(object sender, EventArgs e)
{
    int itemValue = int.Parse(textBox1.Text);
    int Keys = itemValue * 0.8 / 2.15;

    label2.Text = "Value of item in keys:" + Keys;
}
Run Code Online (Sandbox Code Playgroud)

c#

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