小编sab*_*669的帖子

区分用户更改Checkbox.Checked值,或以编程方式更改

我看到Checkbox有一个CheckedChanged事件.是否有可能判断它是以编程方式更改,还是由用户实际检查复选框?

我有一个大网格,用户可以在其中键入过滤器,或使用复选框作为一种提供常见过滤参数的"快速过滤器".然后说他们去通过文本框修改过滤器,我正在检查是否应该以编程方式(un)检查CheckBox控件,以便它反映文本框中的过滤器.

    private void genericCheckbox_CheckedChanged(object sender, EventArgs e)
    {
        UpdateFilter();
    }

    private void UpdateFilter()
    {
        if (gdcSVNDefaultView.RowCount == 0)
            return;

        gdcSVNDefaultView.ActiveFilterString = BuildTableFilter();
        gdcSVNDefaultView.BestFitColumns();
    }

    private void gdcSVNDefaultView_ColumnFilterChanged(object sender, EventArgs e)
    {
        lblTotalFileCount.Text = gdcSVNDefaultView.RowCount.ToString();

        if (gdcSVNDefaultView.ActiveFilterString.Contains("Normal"))
            cheNormalFiles.Checked = true;
        else
            cheNormalFiles.Checked = false;

        if (gdcSVNDefaultView.ActiveFilterString.Contains("bin") || 
            gdcSVNDefaultView.ActiveFilterString.Contains("obj"))
            cheBinObjFolders.Checked = true;
        else
            cheBinObjFolders.Checked = false;
    }
Run Code Online (Sandbox Code Playgroud)

通过一些非常轻的测试,这似乎就像我想要的那样工作.但是我担心会出现某种"无限循环"的情况,因为在CheckedChanged事件发生时调用了UpdateFilter方法会触发ColumnFilterChanged事件,这可能会导致CheckedChange再次发生,因为ColumnFilterChanged操作了Checkboxes.

c# checkbox winforms

16
推荐指数
3
解决办法
6712
查看次数

循环遍历目录

我不知道如何打印出我在ASP/C中的目录中存储的图像#

我找到了这个,但问题是打印出C:\\ Visual Studios 2010\Projects\MyTestUploader\Files\img001.jpg

string[] fileEntries = Directory.GetFiles(sourceDir);
foreach (string fileName in fileEntries)
{
Label1.Text += "<img src=\"" + fileName + "" /><br />";
}
Run Code Online (Sandbox Code Playgroud)

现在我只想打印出目录中的所有图像.我会担心它们很好地格式化,稍后:)

.net c# asp.net

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

Shared和Static有什么区别?

我是一名C#开发人员,但我今天继承了一个传统的VB应用程序,其中包含0个文档.我已经开始阅读代码并每5秒引用一次VB关键字列表.

我想我不明白之间的区别SharedStatic.

阅读这篇文章:https://stackoverflow.com/a/1980293/1189566

它指出:

VB没有static,它有shared

但是你可以在上面链接的关键字列表中看到,Static是一个保留关键字.它看起来Static只适用于字段,Shared可以在方法字段上?

我想最终我只是希望有人可以扩展我链接的答案,为VB菜鸟提供更多细节.

例如,说我有这个

public class MyClass
    Dim myVar as Integer = 1

    public shared sub UpdateMyVar()
        myVar = 2
    end sub
end class

public class MyOtherClass
    Dim cOne = New MyClass()
    Dim cTwo = New MyClass()

    cOne.UpdateMyVar()
    txtMyTextBox.Text = cTwo.myVar.ToString()
end class
Run Code Online (Sandbox Code Playgroud)

请原谅任何语法问题.假设此代码编译.我已经开始在一个半小时前开始浏览代码了.

cTwo.myVar12?我猜是2因为Shared似乎影响了一个类的所有实例?这似乎非常危险.

c# vb.net static static-methods shared

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

命名空间是程序集还是项目?

只是为了明天的面试复习一些 .NET 的东西,

MSDN对该Internal关键字的定义如下:

内部类型或成员只能在同一程序集中的文件内访问

但我似乎找不到程序集的定义。是同一个命名空间、同一个项目中的所有内容,还是……?

.net c#

8
推荐指数
3
解决办法
6337
查看次数

动态PropertyGrid属性

因此,对于我正在研究的这个项目,我们决定使用.NET PropertyGrid控件.根据用户在ListView控件中选择的项目,将根据运行时构建的对象填充propertygrid.

因此,如果他们选择ListView中的第一个项目(例如"Base"),PropertyGrid将显示该组件的属性,例如其尺寸.然后他们选择"Top",它将在PropertyGrid中显示颜色.无论哪种方式,列表中的每个项目都是一个"组件"对象.

基本上,当选择ListView项时,循环遍历数据集以查找与所选组件对象关联的属性,然后将其抛入propertygrid中显示的propertybag类.

我想弄清楚的是,由于这些组件和属性都是一个类,我如何动态确定哪些属性应该显示为下拉菜单,图像框或文本字段.

我正在使用Visual Studios 2010/C#.NET,而对于动态属性生成,我正在使用Tony Allowatt在CodeProject上发现的显然很受欢迎的"Property Bag"类.我唯一能想到的可能是为数据库添加一个额外的列来获取属性,并使用它来告诉PropertyBag要添加哪些数据类型?它似乎是一个热门话题,但我很难找到如何与动态构建的对象一起完成它.

.net c# propertygrid

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

使用Return语句与为函数赋值之间有什么区别吗?

我只是在工作中浏览我们的代码库,尝试清除编译时生成的警告,并且有大量"函数没有As子句,子句"警告.

虽然返回并将其中的大多数更改为a Sub而不是a Function,但我偶尔会忽略一个Return语句,因为我只是突出显示方法名称并查找分配给它的值,这是在大多数代码中完成的.

所以我只是想知道这些之间是否有任何区别:

Private Function Foo() As String
    Foo = String.Empty
End Function
Run Code Online (Sandbox Code Playgroud)

要么:

Private Function Foo() As String
    Return String.Empty
End Function
Run Code Online (Sandbox Code Playgroud)

在功能上,它似乎是相同的,但我不确定在编译器如何解释这个问题时是否存在任何幕后差异.

vb.net

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

使用键盘快捷键关闭当前选项卡

我在工具 - >选项 - >键盘中看到,您可以为大量任务设置键盘快捷键.我尝试搜索"关闭",这些是结果,其中包括:

  • File.Close
  • File.CloseAllButThis
  • File.CloseProject
  • File.CloseSolution

如果我将File.Close设置为Ctrl + W(老实说,为什么微软天生不支持这样的通用快捷方式超出我的范围)它主要起作用,但是如果我同时为表单打开代码隐藏和Designer视图,它关闭两个标签.我应该设置不同的命令,还是我坚持这个?这是一个小小的不便,但它真的让我很恼火.

visual-studio-2010 visual-studio

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

访问GridView单元格值

我试图访问第一个单元格的整数值,但我收到此错误:

无法将类型为"System.Web.UI.WebControls.DataControlFieldCell"的对象强制转换为"System.IConvertible".

我存储在该单元格中的值是一个像810的ID

我的守则

int myID = Convert.ToInt32(GridView1.Rows[rowIndex].Cells[0]);
Run Code Online (Sandbox Code Playgroud)

c# asp.net gridview

4
推荐指数
2
解决办法
3万
查看次数

使用MS异常处理块获取奇怪的异常

我已经创建了一个非常基本的Logging块和异常处理块.在我的代码中,我去测试异常处理(我知道Logging块工作),具体如下:

    public void RunScriptClean()
    {
        try
        {
            throw new FileNotFoundException();
        }
        catch (FileNotFoundException ex)
        {
            var b = ExceptionPolicy.HandleException(ex, "Logging Policy");

            if (b)
                throw;
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是,在catch块的第一行,我得到了这个冗长的异常,我的应用程序崩溃了:

Exception occured: The current build operating (build key Build Key [Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.ExceptionPolicyImpl, Logging Policy]) failed: The type 'Microsoft.Practices.EnterpriseLibrary.ExceptionHandling.Logging, Version=4.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' cannot be resolved. Please verify the spelling is correct or that the full type name is provided. (Strategy type ConfiguredObjectStrategy, index 2).

当它说类型无法解决时,我完全不知道它指的是什么.我添加了对Microsoft.Practices.EnterpriseLibrary.Common/ExceptionHandling/Logging和Ms.Practices.ObjectBuilder2的引用.这一课using Microsoft.Practices.EnterpriseLibrary.ExceptionHandling包括在顶部.

添加了查看我的AppConfig文件的配置工具的屏幕截图: 在此输入图像描述

我确定我遗漏了一些基本的东西,但很难找到EAB 4.1的教程 - CodeProject对于原始版本有很多东西,但是我不能做很多...

编辑我尝试创建一个新的Formatter并命名它, …

c# enterprise-library exception-handling .net-3.5 winforms

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

从DataSet Visualizer复制粘贴行数据和列标题吗?

如果在调试时使用放大镜图标拉起的网格视图DataSet,是否可以将包括列名在内的所有数据复制到剪贴板?我想将2个对象快速复制粘贴到Excel中以进行手动比较,因为它们没有100%相同的结构,但是我似乎只能复制行本身。

visual-studio-2008 visual-studio

3
推荐指数
2
解决办法
2738
查看次数