在我的WinForms中,我有DataGridView.我想一次选择完整行,所以我设置SelectionMode为FullRowSelect.现在我有问题,因为在开始时我的表单为第一行加下划线(所选行的集合为空,第一行未选中但仅加下划线).我尝试了很多东西,比如:
private void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
dataGridView1.ClearSelection();
}
Run Code Online (Sandbox Code Playgroud)
一切都失败了,因为事实上没有选择.
我该怎样摆脱这个下划线?
谢谢你的帮助!
自从@解决了我遇到的问题以来,此时纯粹是好奇心,但为什么Name特别?
我有一个EF实体属性叫Name...如果我不把它@放在前面Name,我没有得到任何类型的错误,但Name对象的属性没有被分配.如果我放入@Name对象初始化程序,它会Name正确分配:
a = new Author
{
Id = Guid.NewGuid().ToString(),
@Name = "Jason Hater" // Apparently "Name" is quasi-reserved or something...?!?
};
Run Code Online (Sandbox Code Playgroud)
我检查了生成的代码,它只是命名为Name:
[EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
[DataMemberAttribute()]
public global::System.String Name
{
get
{
return _Name;
}
//...
}
Run Code Online (Sandbox Code Playgroud)
所以,Name没有列为关键字,为什么它特别?
好吧,正如@sergey建议的那样,它肯定比我想象的要复杂一点.特别是关于实体框架的蠢事.
这在单元测试类中表现出来,也可能是相关的.我不确定什么是相关的,什么不是现在不幸的,所以这是整个[TestInitialize]方法,在它的底部你可以看到奇怪的事情发生在context.SaveChanges():
[TestClass]
public class EntityConverterTests
{
private Author a;
private Post p, p2, p3; …Run Code Online (Sandbox Code Playgroud) 我在DataGridView的一个列中有复选框.
现在我遇到了一个问题:当我在Checkbox上单击一次时,它会发生变化但只是视觉上,在代码中它的值仍然设置为false.但是如果我点击Checkbox然后点击我的datagridview上的其他任何地方(或者在代码中手动更改其值为true),它会将其值更改为true.
如何在单击后强制我的复选框更改值?(检查复选框实际上没有检查它很烦人).
谢谢你的帮助.
我有一个C#WCF服务运行,需要接受ISO-8859-1中的消息.一切正常,直到有人发送包含特殊字符的消息,如ä或ö.
如果字符编码(äto \344或ä)一切正常,但发件人坚持认为如果消息是ISO-8859-1,则不需要转义.
更具体地说,这是有效的(简化示例):
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
a
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
(但当然由于语法无效而引发另一个异常,但传输本身很好).
这不起作用:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
ä
</soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)
并抛出一堆无处可寻的神秘错误信息:
<ExceptionType>System.ServiceModel.CommunicationException, System.ServiceModel, ...</ExceptionType>
<Message>The I/O operation has been aborted because of either a thread exit or an application request</Message>
...
<ExceptionType>System.ServiceModel.CommunicationException, System.ServiceModel, ...</ExceptionType>
<Message>An operation was attempted on a nonexistent network connection</Message>
Run Code Online (Sandbox Code Playgroud)
我试图使用空的App.config运行该服务并且问题仍然存在,所以我很确定问题不在于我创建服务的方式,而在于WCF如何处理消息.将编码更改为UTF-8也无济于事.
知道为什么单个变音符号会破坏服务这么灾难性吗?XML应该支持除ASCII之外的编码,那么这里的交易是什么?我可以做任何改变,或者如果所有的希望都失去了,我怎么能说服发件人编码他们的特殊字符?
我SomeSingleton在C#中有一些类(如果重要,则为.NET 3.5)和代码:
foo()
{
...
SomeSingleton.Instance.DoSomething();
...
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:垃圾收集器什么时候会收集这个Singleton对象?
ps:SomeSingleton的代码:
private static SomeSingleton s_Instance = null;
public static SomeSingleton Instance
{
get
{
if (s_Instance == null)
{
lock (s_InstanceLock)
{
if (s_Instance == null)
{
s_Instance = new SomeSingleton();
}
}
}
return s_Instance;
}
}
Run Code Online (Sandbox Code Playgroud)
感谢帮助!
编辑(附说明):
在Widnows服务中我有代码:
...
FirstSingleton.Instance.DoSomething();
...
public class FirstSingleton
{
(Instance part the same as in SomeSingleton)
public void DoSomething()
{
SomeSingleton.Instance.DoSomething();
}
}
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标:我不关心FirstSingleton会发生什么,但SomeSingleton首先使用它启动Timer,所以我需要SomeSingleton存在(所以定时器可以在每个时间段运行新线程),只要我的服务是运行.
正如我从你的答案中理解的那样,所有这一切都会发生,因为对我的FirstSingleton和SomeSingleton的引用是静态的,并且在服务停止之前GC不会收集单身人士,我是对的吗?:)
我在.NET 3.5中工作,我遇到了使用ServiceController停止某些服务的问题.我搜索整个互联网,我发现我的问题无法解决;)
我是这样做的:
using (ServiceController service = new ServiceController("Service"))
{
try
{
TimeSpan timeout = TimeSpan.FromSeconds(timeoutSeconds);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
}
我等到我的服务停止了.然后我想替换它的库(更新它).抛出异常:
UnauthorizedAccessException异常详细信息:System.UnauthorizedAccessException:拒绝访问路径'blablabla'.
我确信我可以访问此路径,因为我以管理员身份运行我的应用程序.
当这段代码执行时,有趣的是,此服务从当前服务列表中消失(在任务管理器中).所以它实际上阻止了它,但是一些线程仍然必须使用它,所以我无法移动任何Service的文件.即使我尝试自己移动文件(我转到Service目录并尝试使用鼠标移动文件)我也做不到.但是当我手动停止服务(任务管理器和'结束任务')时,我可以用它的文件做任何我想做的事情.那么从C#代码(使用ServiceController)停止它并使用任务管理器停止它之间的区别是什么?
我不知道它是否重要,但我在Virtual Box的Windows Server 2008上运行此应用程序(和此服务).(我需要在其他机器上运行它然后我的电脑).
任何想法如何解决这个问题?;)
谢谢你的帮助.
祝福,皮特.
说我有两个List<KeyValuePair<string, string>>a和b,其中a =
"one", "N",
"two", "N",
"three", "N"
Run Code Online (Sandbox Code Playgroud)
和b =
"one", "Y"
"two", "N"
Run Code Online (Sandbox Code Playgroud)
我想做一个左外连接,但是Value如果b中有一个条目则取b的值,所以结果应为=
"one", "Y" <- this value is taken from b
"two", "N",
"three", "N"
Run Code Online (Sandbox Code Playgroud)
我尝试过做一个普通的左外连接,但是Value"三" 的结果总是一个空字符串
var res = (from l in a
join r in b on l.Key equals r.Key into lrs
from lr in lrs.DefaultIfEmpty()
select new KeyValuePair<string, string>(l.Key, lr.Value)).ToArray();
Run Code Online (Sandbox Code Playgroud) 我创建了一个控制台应用程序,用它创建了program.cs 文件,但我在同一个项目中创建了不同的类,其中包含 main 方法。如何运行我的新班级?每次我运行我的应用程序时,它都会在控制台应用程序中继续执行 Program.cs 。你能指导我正确的道路吗?
c# ×8
.net ×7
datagridview ×2
winforms ×2
collections ×1
database ×1
linq ×1
service ×1
singleton ×1
wcf ×1