当我开始调试我们当前正在处理的项目时,程序窗口没有在窗口中给出正确的焦点,而是堆叠在Visual Studio窗口后面.我不认为我的任何团队成员计算机上都会出现此问题,因此看起来它在我的系统上是一个问题.
VS2008中有一个设置总是在顶部或类似的东西吗?我好像找不到一个......
知道是什么原因引起的吗?视觉工作室?程序代码?
我知道这是一个模糊的问题,但如果没有人认识到这个问题,我会更加细节.
编辑: 我正在使用Visual Studio 2008与ReSharper,GhostDoc和资源重构工具.
编辑: 我已经查看了我可以在VS中找到的每个选项,我找不到任何可以解释这种行为的东西.
编辑: 我在双显示器设置联想Thinkpad Tseries笔记本电脑上运行此功能.监视器通过扩展坞连接.监视器1通过DVI电缆连接,监视器2通过VGA电缆连接.
debugging resharper installation multiple-monitors visual-studio-2008
我对C#和.NET很陌生,而且我对数据绑定的整个概念有些不满.我要求的是对概念的快速概述,或者甚至更好,指向网上(首选)或印刷品中的来源,这可以帮助我理解这个想法.
编辑:
我在vs2008中进行了开发,我们正在使用winforms
在我的应用程序中,我在不同的上下文中运行相同的winform来控制按钮的可见性,文本字段的enabeling和winform头文本.我决定这样做的方法只是将一个字符串传递给表单构造函数,并使用几个if语句检查它,而这些语句又包含所需的winform调整.
if (formContext == "add")
{
Text = "Add member";
}
if (formContext == "edit")
{
Text = "Change role";
userTextBox.Enabled = false;
searchButton.Visible = false;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是"Text"关键字得到ReSharper添加的蓝色边框线,并带有以下消息:构造函数中的Viritual成员调用.这是一个潜在的问题还是只是某种过于热情的ReSharper消息.
任何澄清或改进我的实施的建议将不胜感激.
我有一个WinForm,顶部有一个bindingNavigator,下面有两个水平面板的splitContainer.splitContainer填充未被bindingNavigator占用的空间.
我想将底部面板设置为固定高度,例如100像素,并让顶部面板填充剩余的空间.
这是我目前的代码:
kundeteamSplitContainer.SplitterDistance = kundeteamSplitContainer.Height - 100;
Run Code Online (Sandbox Code Playgroud)
我原以为这会将分割器距离动态设置为始终小于总高度100个像素,使得底部面板占据剩余的100个像素.虽然在运行时重新调整表单大小时底部面板不断改变大小,但这不能按预期工作.
编辑:如果可能的话,我会坚持使用splitContainer.获得了一些与隐藏/显示已经实现的底部面板相关的功能,我不想再次执行该工作.
我已经在我的WinForm中的textBox上实现了验证规则,它运行良好.但是,只有当我跳出字段时,它才会检查验证.我希望只要在框中输入任何内容并且每次内容发生变化时都要检查.我还想在WinForm打开后立即检查验证.
我记得最近通过设置一些事件和诸如此类的事情来做这件事,但我似乎无法记住如何做.
我的一个方法中有以下代码:
foreach (var s in vars)
{
foreach (var type in statusList)
{
if (type.Id == s)
{
Add(new NameValuePair(type.Id, type.Text));
break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎对我来说无效,我想知道是否有办法用LINQ查询替换至少一个foreach.有什么建议?
编辑: vars是一个字符串数组,Add方法将一个项添加到CSLA NameValueList.
我在vs2008中有一个包含DataGridView的winform.datagrid包含一个包含多个列的列表.这些都是固定的宽度,除了我设置的任何一个空间,并填充视图的宽度.winform可以在所有方向调整大小.
我试图解决的问题是,当我增加窗口的垂直大小时,滚动条消失,列向右捕捉以填充额外的空间.我想要发生的是垂直scrollBar永远不会消失.在DataGridView的属性中将ScrollBars设置为vertical不会执行此操作.
这有可能实现吗?如果是这样,我如何让垂直滚动条始终可见?
我想要实现的是合并三个字符串.两个作为字符串提供; firstname和lastname,而第三个是简单的逗号/空格分隔符.给出以下代码行:
//Working code
var sep = ", ";
var fullName = myNewBO[0].LastName + sep + myNewBO[0].FirstName;
//Erronous code
var fullName = myNewBO[0].LastName + ", " + myNewBO[0].FirstName;
Run Code Online (Sandbox Code Playgroud)
该字符串将返回到DataGridView中的单元格.虽然第一位代码执行时已经过了,但后者却没有.字符串未按预期显示在单元格中.有人能告诉我为什么后者不起作用?此外,如果您有更好的解决方案,请提供一个.
编辑:解决了.正如所怀疑的,并且通过几个答案指出问题在我的代码中的其他地方,并且两个替代方案完全相同.谢谢你的语法建议:)
我试图在我的一个UserControls中禁用一些用于显示数据(而不是编辑)的文本框.但是,由于某种原因,我无法正确禁用textBoxes.
我将"readAuthorization on readWriteAuthorization"设置为true,textBoxes被数据绑定为正确的属性.
我还在CanWriteProperty
我的对象中添加了以下行:
if (propertyName == OpeningDateProperty.Name) return false;
if (propertyName == ChangeDateProperty.Name) return false;
if (propertyName == CloseDateProperty.Name) return false;
return base.CanWriteProperty(propertyName);
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我在这里做错了什么.我最近在其他UserControls中实现了几乎相同的东西,没有任何问题......
我在C#.NET中使用Windows窗体(Visual Studio 2008)
编辑:代码片段和属性取自我的客户对象.日期表示客户帐户的开立,最后更改和关闭.它们永远不应该被编辑,实际上在旧的sollution中它们由textLabels表示,但是我们现在想要使用文本框并使属性的CanWriteProperty为false.
我意识到信息可能有点稀缺,但我正在寻找在这个过程中我可能忘记的东西.
编辑:我们也在使用CSLA,我猜(我对这件事情我是新手)这与我们想要这样做的原因有关.
编辑(Sollution):正如您在下面的答案中所看到的,问题是我没有CurrentItemChanged
像我应该那样设置事件.
我想在触发currentItemChanged时将textBox中的文本设置为大写.换句话说,每当框中的文本发生变化时,我都希望将内容设置为大写.这是我的代码:
private void rootBindingSource_CurrentItemChanged(object sender, System.EventArgs e)
{
toUserTextBox.Text.ToUpper();
readWriteAuthorization1.ResetControlAuthorization();
}
Run Code Online (Sandbox Code Playgroud)
事件触发肯定,我已经使用messageBox进行了测试.所以我知道我在这里做错了...问题是什么.
我想将由逗号分隔的一个或多个双字母代码组成的字符串分成两个字母的子字符串,并将它们放在字符串数组或其他合适的数据结构中.结果是在某一点上将数据绑定到组合框,因此需要考虑这一点.
我想要操作的字符串可以是空的,仅由两个字母组成,或者由逗号分隔的多个双字母代码组成(可能还有空格).
我在考虑使用一个简单的字符串数组,但我不确定这是否是最好的方法.
那么......您建议我使用哪种数据结构以及如何实现它?
c# ×9
.net ×7
winforms ×4
textbox ×3
resharper ×2
string ×2
csla ×1
data-binding ×1
datagridview ×1
debugging ×1
installation ×1
linq ×1
scrollbar ×1
split ×1
validation ×1