小编Bry*_*yan的帖子

如何确定是启用还是禁用用户帐户

我正在拼凑一个快速的C#win表单应用程序,以帮助解决重复的文书工作.

我已在AD中为所有用户帐户执行搜索,并将其添加到带有复选框的列表视图中.

我想默认listviewitems的默认检查状态取决于帐户的启用/禁用状态.

string path = "LDAP://dc=example,dc=local";
DirectoryEntry directoryRoot = new DirectoryEntry(path);
DirectorySearcher searcher = new DirectorySearcher(directoryRoot,
    "(&(objectClass=User)(objectCategory=Person))");
SearchResultCollection results = searcher.FindAll();
foreach (SearchResult result in results)
{
    DirectoryEntry de = result.GetDirectoryEntry();
    ListViewItem lvi = new ListViewItem(
        (string)de.Properties["SAMAccountName"][0]);
    // lvi.Checked = (bool) de.Properties["AccountEnabled"]
    lvwUsers.Items.Add(lvi);
}
Run Code Online (Sandbox Code Playgroud)

我正在努力找到正确的属性进行解析以从DirectoryEntry对象获取帐户的状态.我搜索了AD用户属性,但没有找到任何有用的东西.

谁能提供任何指针?

c# directoryservices attributes active-directory

67
推荐指数
3
解决办法
7万
查看次数

在文本框中捕获Ctrl + C.

尽管我多年来一直使用C#(Windows Forms),但我有一个大脑失败的时刻,并且在我的生活中无法弄清楚如何捕获用户在文本框中键入Ctrl+ C.

我的应用程序基本上是一个终端应用程序,我希望Ctrl+ C发送(byte)3一个串口,而不是复制到剪贴板的快捷方式.

enabled在文本框中将快捷方式属性设置为false.然而,当用户点击Ctrl+时C,按键事件不会触发.

如果我抓住keydown,则当用户按下时Ctrl(即,在他们按下C键之前)事件将触发.

我很遗憾,这可能是一件非常简单的事情.

c# textbox winforms

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

如何在C#中扩展数组

我必须使用数组进行练习.用户必须输入3个输入(每次输入有关项目的信息),输入将插入到数组中.然后我必须显示数组.

但是,我很难在不改变其中的信息的情况下增加阵列的长度; 以及如何允许用户输入另一组输入?这是我到目前为止:

public string stockNum;
public string itemName;
public string price;

string[] items = new string[3];

public string [] addItem(string[] items)
{
    System.Console.WriteLine("Please Sir Enter the stock number");
    stockNum = Console.ReadLine();
    items.SetValue(stockNum, 0);
    System.Console.WriteLine("Please Sir Enter the price");
    price = Console.ReadLine();
    items.SetValue(price, 1);
    System.Console.WriteLine("Please Sir Enter the item name");
    itemName = Console.ReadLine();
    items.SetValue(itemName, 2);
    Array.Sort(items);
    return items;
}


public void ShowItem()
{
    addItem(items);
    Console.WriteLine("The stock Number is " + items[0]);
    Console.WriteLine("The Item name is " + items[2]);
    Console.WriteLine("The price …
Run Code Online (Sandbox Code Playgroud)

c# arrays input

14
推荐指数
3
解决办法
5万
查看次数

更新期间停止TextBox闪烁

我的WinForms应用程序有一个TextBox,我将其用作日志文件.我正在附加没有使用闪烁形式的文本TextBox.AppendText(string);,但是当我尝试清除旧文本时(因为控件的.Text属性达到.MaxLength限制),我得到了可怕的闪烁.

我正在使用的代码如下:

public static void AddTextToConsoleThreadSafe(TextBox textBox, string text)
{
    if (textBox.InvokeRequired)
    {
        textBox.Invoke(new AddTextToConsoleThreadSafeDelegate(AddTextToConsoleThreadSafe), new object[] { textBox, text });
    }
    else
    {
        // Ensure that text is purged from the top of the textbox
        // if the amount of text in the box is approaching the
        // MaxLength property of the control

        if (textBox.Text.Length + text.Length > textBox.MaxLength)
        {
            int cr = textBox.Text.IndexOf("\r\n");
            if (cr > 0)
            {
                textBox.Select(0, cr + 1);
                textBox.SelectedText = string.Empty;
            } …
Run Code Online (Sandbox Code Playgroud)

c# textbox flicker winforms

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

图像映射无法在iOS设备上运行,大型图像会被设备重新调整

我正在使用PHP在我们公司的Intranet上开发一个内部Web应用程序.应用程序的一部分向用户显示几个高分辨率图像.这些图像的面积为5000x3500像素.每个图像都有一个图像映射(使用矩形区域),并且在我尝试过的桌面浏览器中一切正常.

我发现的问题是,当用户通过他们的iOS设备访问网站时,图像将通过设备上的safari重新调整,但图像地图坐标不会被调整以匹配.

我的PHP生成的HTML示例如下:

<img src="largeimage.jpg" width="5000" height="3500" usemap="#examplemap">
<map name="examplemap">
  <area shape="rect" coords="0,0,5000,500" href="blah1"/>
  <area shape="rect" coords="0,500,2500,3500" href="blah2"/>
  <area shape="rect" coords="2500,500,5000,3500" href="blah3"/>
</map>
Run Code Online (Sandbox Code Playgroud)

(图像映射中的实际矩形坐标计算为图像大小的百分比).

我知道safari正在调整图像大小,因为设备上存在内存限制,但我需要找到一种缩放图像映射以适应的方法,或者用其他可以完成相同工作的其他东西替换图像映射.任何人都可以提供任何建议吗?

html iphone imagemap ipad ios

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

在SQL更新期间违反UNIQUE KEY约束

我有一个简单的数据库表(SQL Server 2008 R2 Express),其定义如下:

ID         INT          Auto Inc, PK
Name       VARCHAR(64)  Unique Key
Telephone  VARCHAR(128)
Run Code Online (Sandbox Code Playgroud)

我有一个存储过程,我执行以更新表中的记录,基本上执行以下操作:

UPDATE customers
SET    Name = @name, Telephone = @Telephone
WHERE  id = @id
Run Code Online (Sandbox Code Playgroud)

目前,我在表中有两个条目

ID   Name    Telephone
1    Fred    01234 567890
2    John    09876 543210
Run Code Online (Sandbox Code Playgroud)

当我调用我的存储过程更新John的电话号码时,有效执行的SQL是

UPDATE customers
SET    Name = 'John', Telephone = '02468 135790'
WHERE  id = 2
Run Code Online (Sandbox Code Playgroud)

这会在Name字段上生成UNIQUE KEY违规.现在,由于Name字段实际上没有变化,为什么会出现这种情况?

由于我的应用程序正在使用存储过程处理所有数据库操作,我可以通过删除约束来修复此问题,并修改存储过程以手动强制执行约束,但这似乎是错误的.

鉴于我的表实际上有更多的字段,我必须有一个通用的工作来防止这些错误的约束问题,而不必生成大量的存储过程来更新特定的字段?

编辑:上面的表格被简化以保持问题更易于管理,我很确定我没有错过任何重要的内容,但是对于信息,表格的实际定义如下

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[companies]( …
Run Code Online (Sandbox Code Playgroud)

sql sql-server stored-procedures sql-server-express

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

PrintDialog.ShowDialog(this)立即在Windows 7上返回DialogResult.Cancel

我正在开发的内部应用程序在Windows 7(64位)PC上表现得很奇怪.

如果我创建一个PrintDialog的实例,并调用它的ShowDialog()方法,该方法立即返回DialogResult.Cancel而不显示打印机对话框窗体.

Windows 7 PC确实安装了打印机(带有可用的默认打印机).

PrintDialog printDialog = new PrintDialog();

printDialog.PrinterSettings.Copies = 2;
printDialog.AllowCurrentPage = false;
printDialog.AllowPrintToFile = false;
printDialog.AllowSelection = false;
printDialog.AllowSomePages = false;
DialogResult dialogResult = printDialog.ShowDialog(this);

if (dialogResult == DialogResult.Cancel)
    return;
Run Code Online (Sandbox Code Playgroud)

任何线索为什么会发生这种情况?

.net printing printdialog windows-7 winforms

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

在WinForms按钮中减少文本周围的填充

我有一个将在触摸屏系统上使用的应用程序,它包含许多相当大的按钮(~100px square).

每个按钮将有1到4行文本(通常每行一个单词).

由于按钮中有大量的填充,我不得不减小文本的大小,使其变得几乎不可读,但是如果我能够减少内部填充,那么文本将直接绘制到边框那我就不会有问题了.

我试图将控件的填充减少到零,如下所示,但它没有帮助.

this.Text = _label;
this.Font = new Font(this.Font.FontFamily, (float) _size);
this.Padding = new Padding(0);
Run Code Online (Sandbox Code Playgroud)

问题的一个示例如下所示:

按钮与破碎的文本

正如您所看到的,"OVERVIEW"这个词有足够的空间放在一行上,但是如何在不缩小字体大小的情况下实现这一目标呢?我不喜欢不得不重写控件的文本绘画代码.

编辑:我注意到将填充增加到高达300的各种值,对控件的内部填充没有任何影响.另外,对于信息,我正在使用的按钮是我从Windows.Forms.Button类继承的控件,因为我需要添加一些属性,但是我没有干涉任何Button自己的方法.

.net fonts paint button winforms

12
推荐指数
2
解决办法
7825
查看次数

参考库二进制文件 - 调试版或发行版?

我今天早些时候提出了一个问题(管理源代码的方法),因为我对管理共享库的源代码的方式不满意.作为答案的结果,我找到了一个更好的方法.

我现在正在通过我的存储库整理所有源代码,但结果我现在有了另一个问题......

虽然我还在开发一个软件,但是引用库的调试版本是否更好(冒着在以后忘记用发布版本替换它的风险)?

或者换句话说,如果我引用库的发布版本,如果我的软件的调试版本崩溃,它会限制调试吗?

c# projects-and-solutions shared-libraries visual-studio-2008

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

转义Windows批处理文件中的&符号

我意识到你可以使用hat字符在批处理文件中转义&符号

例如

echo a ^& b
a & b
Run Code Online (Sandbox Code Playgroud)

但我正在使用该命令

for /f "tokens=*" %%A IN ('DIR /B /A-D /S .acl') DO ProcessACL.cmd "%%A"
Run Code Online (Sandbox Code Playgroud)

它查找当前目录中名为".acl"的所有文件,或当前目录的子目录.

问题是,我找到包含'&'字符的路径名(不,它们不能重命名),我需要一种方法来自动转义&符号并使用转义路径调用第二个批处理文件参数.

rem ProcessACL.cmd
echo %1
Run Code Online (Sandbox Code Playgroud)

windows escaping batch-file

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