我在C#中使用ListView来制作网格.我想找到一种能够以编程方式突出显示特定单元格的方法.我只需要突出显示一个单元格.
我已尝试使用所有者绘制的子项目,但使用下面的代码,我得到突出显示的单元格,但没有文字!有关于如何使其工作的任何想法?谢谢你的帮助.
//m_PC.Location is the X,Y coordinates of the highlighted cell.
void listView1_DrawSubItem(object sender, DrawListViewSubItemEventArgs e)
{
if ((e.ItemIndex == m_PC.Location.Y) && (e.Item.SubItems.IndexOf(e.SubItem) == m_PC.Location.X))
e.SubItem.BackColor = Color.Blue;
else
e.SubItem.BackColor = Color.White;
e.DrawBackground();
e.DrawText();
}
Run Code Online (Sandbox Code Playgroud) 我正在编写一个使用重命名规则的应用程序,根据用户提供的信息重命名文件列表.文件可能以不一致的名称开头,或者文件名可能是一致的.用户选择文件列表,并输入有关文件的信息(对于MP3,它们将是艺术家,标题,专辑等).使用重命名规则(例如下面的代码),程序使用用户输入的信息相应地重命名文件.
但是,如果所有或部分文件都是一致的,我想让程序"猜测"文件信息.这就是我遇到的问题.做这个的最好方式是什么?
示例文件名:
Kraftwerk-Kraftwerk-01-RuckZuck.mp3
Kraftwerk-Autobahn-01-Autobahn.mp3
Kraftwerk-Computer World-03-Numbers.mp3
Run Code Online (Sandbox Code Playgroud)
重命名规则:
%Artist%-%Album%-%Track%-%Title%.mp3
Run Code Online (Sandbox Code Playgroud)
该程序应正确推断艺术家,曲目编号,标题和专辑名称.
同样,最好的方法是什么?我在思考正则表达式,但我有点困惑.
注意: 我使用的是 C# 8 的可空引用类型。默认情况下,引用类型不可为空。
假设我有以下方法:
public void TestMethod<T>(T[] items)
{
}
Run Code Online (Sandbox Code Playgroud)
在不使用任何通用约束的情况下,如何使用 Nullable 属性指定数组本身不会为空,但数组中的单个项目可能为空?
我的目标如下:
var len = items.Length;items[0].ToString()items[0]?.ToString()这段代码似乎表明数组本身可以为空,但是,如果数组本身不为空,那么每个数组项也不为空:
public void TestMethod<T>([MaybeNull]T[] items)
{
}
Run Code Online (Sandbox Code Playgroud)
我知道使用泛型约束可以解决这个问题——因为我可以使用T?[] items——但是,我必须创建两个版本的类——一个用于值类型,一个用于引用类型。有没有办法在不使用通用约束的情况下表明这一点?
我正在开发一个项目,在该项目中,手机上运行的程序需要与其连接的PC上运行的程序进行通信.理想情况下,我想使用USB,WiFi,无论如何进行通信.
这两个程序应该能够传达诸如电池寿命,短信等内容......但是我可以稍后再努力,我只需要让它们进行交谈.
最好的方法是什么?
我有一个泛型类(C#),
class MyClass<T> where T : struct, IComparable<T>
{
public T filelocation;
}
Run Code Online (Sandbox Code Playgroud)
T可以是UInt32或UInt64(没有别的).
我需要将filelocation转换为long以在文件中搜索...
我尝试了以下内容
long loc = (T)myclass.filelocation;
long loc = (T)(object)myclass.filelocation;
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何作用......
有任何想法吗?
我有以下使用“尝试”模式的方法。
public bool TryGetValue(string subnet, [NotNullWhen(true)] out TValue value)
{
if (!TryFindNode(subnet, out var node))
throw new InvalidOperationException();
if (TValueIsDefault(node.Value) == false)
{
value = node.Value;
return true;
}
value = default;
return false;
}
Run Code Online (Sandbox Code Playgroud)
在线value = default- 我收到编译器警告 CS8601:“可能的空引用分配”。下一行返回false, 并value具有该[NotNullWhen(true)]属性。
我是否遗漏了某些内容,或者编译器由于某种原因没有携带 的状态value?
Sharplab.io上的完整示例和Github 要点
我想知道是否有办法创建自己的Windows Mobile模拟器图像.我有索尼爱立信XPERIA X1手机,在3英寸屏幕上有480x800,大约300 DPI.
我想创建一个具有正确屏幕属性的模拟器图像,并希望一个类似于正确按钮位置和手机内容的外观.
我拥有手机,所以如有必要,我可以通过手机创建图像.
这是可能的,如果是的话,怎么样?