在我的应用程序中,我有一个mainform.单击打开按钮时,我想显示加载文本的第二个(无边框)表单.到目前为止我已经完成了这项工作.
但我想要的是加载形式相对于主窗体居中.我该怎么做呢?
解:
private void tsbOpen_Click(object sender, EventArgs e)
{
if (_fileDialog.ShowOpenDialog() == DialogResult.OK)
{
_progress = new frmProgress(); // _progress is a member var
backgroundWorker1.RunWorkerAsync("open");
_progress.ShowDialog(this);
}
}
Run Code Online (Sandbox Code Playgroud) 如何获得屏幕的颜色?我想知道屏幕是设置为真彩色(32位)还是高彩色(16位).
我一直在谷歌搜索,并认为它很容易找到,但我找不到任何东西(也许我必须努力我的谷歌技能?)
我正在阅读有关服务层和存储库的信息.现在我想知道服务层是否必须包装dal.我正在使用存储库和MVP模式进行大量工作.演示者现在拥有业务逻辑.但是我想的越多,它就不是将业务逻辑放在演示者和数据访问层中的逻辑场所.所以这就是服务层的用武之地.
但是,演示者现在是否与服务层进行了对话?是否"允许"演示者可以访问存储库?或者一切都应该通过服务层?在后一种情况下,服务层只是一个中间人:
MyFooService:
public List<Foo> GetAllFoo()
{
var listFoo = new FooRepository().GetAll().TiList();
return listFoo;
}
Run Code Online (Sandbox Code Playgroud)
主持人:
public List<Foo> GetAllFoo()
{
var listFoo = new MyFooService().GetAllFoo();
return listFoo;
}
Run Code Online (Sandbox Code Playgroud)
是好的方法吗?或者"允许"演示者直接调用存储库?
我想知道如何查看我的应用程序加载了哪些 dll。我想知道这一点,因为应用程序消耗大量内存,大约 400-500 MB(私有字节)。
我已经使用 memprofiler for .NET 分析了我的应用程序,但我找不到任何内存泄漏,所以我想可能加载了一些非常大的 dll。如果是这种情况,我可以证明我的应用程序的内存使用是合理的。
我希望你可以帮助我。
编辑:供我参考:硬盘上的 foo.dll 大小为 2MB。当这个dll在我的应用程序中使用和加载时,这个文件是否也占用2MB内存?
使用ng-repeat我在编辑表单中显示一些收音机:
<label style="float: left;margin-right: 3px;" data-ng-repeat="gender in genders" data-ng-hide="$first">
<input type="radio" name="gender" value="{{gender.Id}}" data-ng-model="customerFormData.customer.Gender.Id" />{{gender.Description}}
</label>
Run Code Online (Sandbox Code Playgroud)
如你所见,我已经应用了'dot practice'.编辑表单是我的详细信息表单上的弹出窗口.在我的详细信息表格中,我有这个:
<tr>
<td>Gender:</td>
<td>{{ customer.Gender.Description }} </td>
</tr>
Run Code Online (Sandbox Code Playgroud)
编辑表单中的所有绑定都有效,但我无法使性别绑定工作.我认为它与使用ng-repeat继承范围有关.
我也试过用$parent,但结果仍然是一样的:
<label style="float: left;margin-right: 3px;" data-ng-repeat="gender in genders" data-ng-hide="$first">
<input type="radio" name="gender" value="{{gender.Id}}" data-ng-model="$parent.customerFormData.customer.Gender.Id" />{{gender.Description}}
</label>
Run Code Online (Sandbox Code Playgroud)
设置初始值有效.当设置女性时,选择女性无线电,当它是男性时,选择男性无线电.
第二个问题是(我认为它与绑定有关),是当选择男性时,我必须在女性上单击两次才能选择女性.
编辑:我创建了一个小提琴来说明我的问题.
目前我正在实施一个导入模块.但是,还必须记录每个操作.例如.当我导入客户时,我需要检查该客户是否已经存在,如果客户不存在,我需要创建客户.我需要记录这两种情况.
所以目前我有一些像这样的代码:
public event Action<string> OnMessageLog;
public void ImportOrder()
{
LogMessage("The order is being created");
var customer = ImportCustomer("MG_001");
var order = new Order{ Customer = customer };
LogMessage("The order is created");
unitOfWork.Orders.AddObject(order);
}
public Customer ImportCustomer(string customerCode)
{
var customer = this.unitOfWork.Customers.GetByCode(customerCode);
if(customer == null)
{
LogMessage("The customer doesn't exists. A new customer is created");
customer = new Customer{ \\.. here some initialization };
}
else
{
LogMessage("The customer exists.");
}
return customer;
}
private void LogMessage(string message)
{ …Run Code Online (Sandbox Code Playgroud) var handler = new Handler();
var iife = (function() {
return {
doAlert: doAlert
};
function doAlert() {
alert('testing');
}
})();
function Bar(){
this.doFirst = function(){
handler.add("x", iife.doAlert);
}
}
function Handler(){
this.add = function(caption, callback){
var linkText = document.createTextNode(caption);
var href = document.createElement("a");
href.appendChild(linkText);
href.setAttribute("href", "#");
href.setAttribute("onclick", callback);
$(".bc").append(href);
}
}
Run Code Online (Sandbox Code Playgroud)
鉴于此代码,我的回调在Dom中可见
function doAlert() {
alert('testing');
}
Run Code Online (Sandbox Code Playgroud)
这实际上就在我的onclick属性中.显然这不是我想要的.我需要做什么才会显示警报?我期待看到类似的东西doAlert(),为什么不是这样的?
我有这个分组:
var data = weatherDataList.Items
.GroupBy(w => new { w.Temperature, w.RelativeHumidity })
.ToList();
Run Code Online (Sandbox Code Playgroud)
该weatherDataList包含90K项目。数据大约有 26k 项。
我试过几个循环:foreach,for并for与达夫的设备实现。这三个过程大约需要 2 分 40 秒才能完成。
我做的下一件事被替换foreach用Parallel.Foreach。这需要 50 秒才能完成。一个巨大的改进。
这是实现:
var list = new ConcurrentBag<TemperatureHumidityScatterItem>();
Parallel.ForEach(data, groupedItem =>
{
var item = new TemperatureHumidityScatterItem();
var totalInGroup = groupedItem.Count();
item.Humidity = groupedItem.Key.RelativeHumidity;
item.Temperature = groupedItem.Key.Temperature;
item.YearCount = totalInGroup / weatherDataList.TotalDifferentYears;
item.BadCell = IsBadCell(groupedItem.Key.Temperature, groupedItem.Key.RelativeHumidity);
list.Add(item);
});
Run Code Online (Sandbox Code Playgroud)
虽然 50 秒是一个很大的改进,但我想知道是否可以更快地完成。我可以做些什么来获得更高的性能?
PS:不幸的是,我无法展示IsBadCell实现,但我可以看出它正在做纯粹的数学计算(除法、求和等)并且需要 <1 毫秒才能完成。 …
我希望我的ASP C#应用程序是多语言的.我计划用XML文件执行此操作.问题是,我对此没有任何经验.我的意思是,我该如何开始?将语言存储在xml文件中是一个好主意吗?如何在代码中设置我的菜单按钮的值?我想使用XML,因为我以前从未使用过XML,我想学习如何处理这样的案例.
在我们的应用程序中,我们在白色表单上有白色按钮.当鼠标悬停按钮时,我们希望在按钮上显示浅蓝色透明矩形.
我想创建这个用户控件,但我不知道如何做到这一点.我试过谷歌,但我没有找到任何可以帮助我的东西,所以我希望你们能指出我正确的方向.
c# ×8
winforms ×4
oop ×2
angular-ui ×1
angularjs ×1
button ×1
callback ×1
foreach ×1
javascript ×1
linq ×1
loops ×1
memory ×1
paint ×1
performance ×1
repository ×1
screen ×1
xml ×1