小编Mar*_*ijn的帖子

C#WinForms相对于另一个表单定位一个表单

在我的应用程序中,我有一个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)

c# winforms

1
推荐指数
1
解决办法
1万
查看次数

如何获得屏幕的显示深度?

如何获得屏幕的颜色?我想知道屏幕是设置为真彩色(32位)还是高彩色(16位).

我一直在谷歌搜索,并认为它很容易找到,但我找不到任何东西(也许我必须努力我的谷歌技能?)

c# screen winforms

1
推荐指数
1
解决办法
1197
查看次数

服务层是否充当DAL的外观?

我正在阅读有关服务层和存储库的信息.现在我想知道服务层是否必须包装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)

是好的方法吗?或者"允许"演示者直接调用存储库?

c# oop repository service-layer

1
推荐指数
1
解决办法
1424
查看次数

如何查看我的应用程序加载了哪些 dll?

我想知道如何查看我的应用程序加载了哪些 dll。我想知道这一点,因为应用程序消耗大量内存,大约 400-500 MB(私有字节)。

我已经使用 memprofiler for .NET 分析了我的应用程序,但我找不到任何内存泄漏,所以我想可能加载了一些非常大的 dll。如果是这种情况,我可以证明我的应用程序的内存使用是合理的。

我希望你可以帮助我。

编辑:供我参考:硬盘上的 foo.dll 大小为 2MB。当这个dll在我的应用程序中使用和加载时,这个文件是否也占用2MB内存?

c# memory winforms

1
推荐指数
1
解决办法
7848
查看次数

绑定广播无法在Angular中工作

使用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)

设置初始值有效.当设置女性时,选择女性无线电,当它是男性时,选择男性无线电.

第二个问题是(我认为它与绑定有关),是当选择男性时,我必须在女性上单击两次才能选择女性.

编辑:我创建了一个小提琴来说明我的问题.

angularjs angular-ui angularjs-scope angularjs-ng-repeat

1
推荐指数
1
解决办法
9907
查看次数

在不让loggin使代码混乱的情况下应用日志记录的简洁方法是什么?

目前我正在实施一个导入模块.但是,还必须记录每个操作.例如.当我导入客户时,我需要检查该客户是否已经存在,如果客户不存在,我需要创建客户.我需要记录这两种情况.

所以目前我有一些像这样的代码:

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)

c# oop

1
推荐指数
1
解决办法
286
查看次数

为什么不调用我的回调?

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(),为什么不是这样的?

javascript callback

1
推荐指数
1
解决办法
48
查看次数

如何为包含 90k 个项目的列表加速我的循环?

我有这个分组:

var data = weatherDataList.Items
                .GroupBy(w => new { w.Temperature, w.RelativeHumidity })
                .ToList();
Run Code Online (Sandbox Code Playgroud)

weatherDataList包含90K项目。数据大约有 26k 项。

我试过几个循环:foreachforfor与达夫的设备实现。这三个过程大约需要 2 分 40 秒才能完成。

我做的下一件事被替换foreachParallel.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 毫秒才能完成。 …

c# linq performance foreach loops

1
推荐指数
1
解决办法
133
查看次数

C#XML语言文件

我希望我的ASP C#应用程序是多语言的.我计划用XML文件执行此操作.问题是,我对此没有任何经验.我的意思是,我该如何开始?将语言存储在xml文件中是一个好主意吗?如何在代码中设置我的菜单按钮的值?我想使用XML,因为我以前从未使用过XML,我想学习如何处理这样的案例.

c# xml

0
推荐指数
1
解决办法
4164
查看次数

C#Winforms如何在鼠标上的按钮上绘制矩形?

在我们的应用程序中,我们在白色表单上有白色按钮.当鼠标悬停按钮时,我们希望在按钮上显示浅蓝色透明矩形.

我想创建这个用户控件,但我不知道如何做到这一点.我试过谷歌,但我没有找到任何可以帮助我的东西,所以我希望你们能指出我正确的方向.

c# paint button winforms

0
推荐指数
1
解决办法
3508
查看次数