我有一个名为app1的WPF应用程序,它有一个名为window1的窗口.当用户单击关闭按钮时window1,应用程序不会关闭,但window1会隐藏(this.hide()).
我想在启动时检查应用程序的另一个实例是否已在运行; 如果是这样,我想显示已经运行的实例并终止新实例.
我怎样才能做到这一点?
我知道如何检查进程以及如何关闭当前应用程序,但我不知道如何显示正在运行的另一个WPF进程的窗口...
在我的App启动活动中,我这样做:
private void Application_Startup(object sender, StartupEventArgs e)
{
if(Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).Count() > 1)
{
Application.Current.Shutdown(0);
}
}
Run Code Online (Sandbox Code Playgroud) 我有查询:
var q = (
from c in db.tblStoreRecommendations
where
itemIDsInCart.Contains(c.ItemID)
&& !itemIDsInCart.Contains(c.RecommendItemID)
select c
);
Run Code Online (Sandbox Code Playgroud)
它将返回以下内容:
ID ItemID RecommendItemID Message
------------------------------------------
1 25 3 Msg here
2 26 3 Something else
3 27 8 Another message
Run Code Online (Sandbox Code Playgroud)
我需要查询来过滤掉具有相同结果的查询RecommendItemID,这不应该多次出现在返回的结果中.
如果存在两个,它可以使用(随机选择最好).因此返回的结果应该省略记录ID 1或2.
谁能告诉我该怎么做呢?谢谢!
$ hg pull
Password:
pulling from ssh://foo@bar.com:22//home/usr/xxx/repo
searching for changes
adding changesets
adding manifests
adding file changes
Run Code Online (Sandbox Code Playgroud)
然后继续显示上述情况10分钟以上.有没有办法告诉进展以及它是否仍然存在或已经死亡?
以下陈述完全可以.
var sb = new string[] { "line1", "line2" };
sb.ForEach(Console.WriteLine);
// same as sb.ForEach(item => Console.WriteLine(item));
Run Code Online (Sandbox Code Playgroud)
这种练习的名称是什么,不使用lambda表达式中的参数?
谢谢,
是否有一种优雅的方式来转换这个字符串数组:
string[] a = new[] {"name", "Fred", "colour", "green", "sport", "tennis"};
Run Code Online (Sandbox Code Playgroud)
进入一个字典,使得数组的每两个连续元素成为一个{key,value}字典对(我的意思是{"name" - >"Fred","color" - >"green","sport" - > "网球"})?
我可以通过循环轻松完成,但有更优雅的方式,也许使用LINQ?
我想从文本框中检索值并将其转换为整数.我写了下面的代码,但它抛出了一个NumberFormatException.
String nop = no_of_people.getText().toString();
System.out.println(nop);
int nop1 = Integer.parseInt(nop);
System.out.println(nop1);
Run Code Online (Sandbox Code Playgroud)
第一个调用System.out.println打印我的数字,但转换为整数给出一个例外.我究竟做错了什么?
当我尝试调试此代码(在C#WinForms中)时,它显示错误
"使用未分配的局部变量"在'arrlist [i]'
由于我将它与数据库变量进行比较,我无法初始化数组的大小.
这是代码:
if (count != 0)
{
OleDbCommand cmd1 = new OleDbCommand(
"select seat_no, booking_date, show_time "+
"from tickets "+
"where ticket_no = (select max(ticket_no) from tickets)", c);
OleDbDataReader oledb1 = cmd1.ExecuteReader();
oledb1.Read();
string retr_seats = oledb1.GetString(0);
char comma = ',';
string[] strarray = retr_seats.Split(comma);
int ticket_length = strarray.Length;
string[] arrlist;
int i = 0;
foreach(var control in this.Controls)
{
if(control is Label)
{
arrlist[i] = control.ToString();
i++;
}
}
for(var j=0;j<=ticket_length;j++)
{
for (var k …Run Code Online (Sandbox Code Playgroud) 这是使用显示一段时间的状态消息的最佳方式吗?
private void SetStatus(Color _color, string _msg)
{
System.Threading.Thread t = new System.Threading.Thread(() =>
{
stsStatusMsg.ForeColor = _color;
stsStatusMsg.Text = _msg;
System.Threading.Thread.Sleep(2000);
stsStatusMsg.Text = "";
});
t.Start();
}
Run Code Online (Sandbox Code Playgroud)
调用它的示例:
SetStatus(Color.Red, AppMessages["msgALREADYIN"]);
Run Code Online (Sandbox Code Playgroud)
stsStatusMsgToolStripStatusLabel在整个应用程序操作期间,只能通过此方法访问(即a ).
上面的代码实际上有效.消息显示在控件上2秒钟然后消失......
我在一个项目中有两个表单.当我的应用程序运行时,Form1打开.之后我开了Form2.
如何访问Form1从Form2与反思?
因此,根据我对stringvs的理解StringBuilder,字符串构建器实际上会修改自身的实例,而字符串只会创建一个新实例.因此,如果我正确理解这一点,那么通过使用字符串方法来不断变化的变量,我基本上可以最终使用所有内存,直到计算机需要转储它来腾出空间.
我正在做的是使用事件处理程序来监视串行通信.我将接收数据并解析出来并将其显示在文本框中.事件处理程序使用string来实现此目的.考虑到更好的编程并且在我不需要时不用尽所有内存我正在尝试清理我的代码.
我开始使用字符串构建器进行编码,并开始获取StringBuilder不包含.contains方法的构建错误.
基本上我很好奇我是否应该独自一人?我应该采用不同的方法吗?我是否有正确的理解,这string将不可避免地让我失去记忆?
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
SerialPort sp = (SerialPort)sender;
string indata = sp.ReadExisting();
rx.AppendText(Environment.NewLine + indata);
string dataCheck = indata.ToUpper();
if (dataCheck.Contains("CONNECT") || indata.Contains("CONNECTED"))
{
cState.Text = "Connected";
connectLink();
}
if (dataCheck.Contains("NO CARRIER"))
{
cState.Text = "Disconnected";
disconnect();
}
dataCheck = null;
}
Run Code Online (Sandbox Code Playgroud)