小编And*_*por的帖子

在C#中区分类名和属性有什么好的命名约定?

我经常遇到这种情况,以为我会看到其他人对此有何看法.

使用StyleCop约定,我发现我经常拥有一个很难与它访问的类名不同的属性名.例如:

public class ProjectManager
{
 // Stuff here
}

public class OtherClass
{
     private ProjectManager ProjectManager { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它编译并运行,但似乎是一种容易混淆事物的方法,即使使用"this"也是如此.

c# design-patterns naming-conventions

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

如何在C#中将"Keys"枚举值转换为"int"字符?

这似乎应该很容易,但我很难搞清楚这里需要做些什么.

在"KeyDown"事件处理程序中,如果"e.KeyValue"是一个数字,我想将其视为一个数字并将其存储为int.所以,如果我在数字键盘上点击"8",我不想要"Numpad8"我想要我可以加或减的int值8或者其他什么.

那么,我如何从KeyValue转换为int?

c# keydown winforms

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

滚动时onTextChanged更新ListView中的EditText

我一直在寻找答案,但解决方案似乎对我没有用.我在列表项中有一个TextView和一个EditText.我试图在用户编辑时更新EditTexts的存储值.

@Override
public View getView(int index, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    final int pos = index;
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.user_details_list_row, parent,false);
        holder = new ViewHolder();
        holder.mCaptionTextView  = (TextView)convertView.findViewById(id.user_detail_row_caption);
        holder.mDetailEditText = (EditText)convertView.findViewById(id.user_detail_row_value);
        convertView.setTag(holder);
    }else{
        holder = (ViewHolder) convertView.getTag();
    }

    holder.mDetailEditText.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {
        }

        @Override
        public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) {
            // TODO Auto-generated method stub

        } …
Run Code Online (Sandbox Code Playgroud)

android android-listview android-edittext

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

如何捕获在C#中的DataGridView上触发"CellEndEdit"的击键?

我有一个设置为EditOnF2的DataGridView.我在CellEndEdit事件处理程序中对数据进行了一些特殊处理,以设置单元格的值.我仍然希望EditOnKeystrokeOrF2的功能在按下Esc键时恢复为原始值.不幸的是,在CellEndEdit事件处理程序中,我没有看到告诉导致CellEndEdit事件被触发的方法.如果没有按下Esc键,我只想更改单元格的值.我怎么知道它是不是?

编辑:值得注意的是,在编辑单元格时,KeyDown事件不会被触发,也不会触发最终结束键击.

Edit2:我尝试过KeyPreview建议,但表单仍然没有捕获按下的Escape键.

编辑3:我一直在尝试尝试让这个工作.我最初发布了以下一些作为单独的帖子,但觉得将它包含在这里可能更相关.

我在DataGridView中有一个单元格,现在设置为EditProgrammatically.要捕获开始编辑的击键,我将cell.Value设置为等于击键.但是,这会破坏单元格的"Escape"功能 - 当您按下escape而不是恢复到原始值时,它将恢复为我以编程方式插入单元格的击键.

我相信如果我可以在一个单元格上设置"EditedFormattedValue",这将是我想要设置击键值的地方,但这似乎是只读的.我怎样才能完成我的尝试?

一个澄清的例子:如果单元格中的值为"54.3",并按"9"键,则开始编辑单元格并在其中放置"9".如果我点击Escape,而不是恢复到"54.3",它将恢复为"9".我想要的是它恢复到原来的"54.3"值.

所以,我试图从开始到结束来解决这个问题.我认为真正的问题是我覆盖了原始值,无法确定是否应该还原它.

Edit4:看起来CellValidating可能值得使用,但是当我试验它时,我看到了奇怪的行为.在一个新项目中,我创建了DataGridView并注册了各种事件,并看到在CellEndEdit之前触发了CellValidating.但是,在我试图让它工作的项目中,CellEndEdit正在触发CellFalidating.关于差异可能是什么的任何想法?

.net c# datagridview keydown

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

在WinForms应用程序中使用Web浏览器控件获取错误

我试图在winforms应用程序中使用webbrowser控件.在我的应用程序中,当我尝试导航到在IE或Chrome中工作正常的地方时,我收到一个"脚本错误"窗口,指出"此页面上的脚本出现了错误"."错误:对象不支持此属性或方法." 然而,我仍然可以使用IE进入页面而没有问题.

我错过了什么?

对于我而言,脚本错误并不重要,因为它在我的应用程序中的行为与在Web浏览器中的行为不同.我的问题是:

是否可以在.Net应用程序中嵌入Web浏览器,其行为与独立的Web浏览器完全相同?怎么样?

.net c# browser

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

屏幕方向更改后片段重置

我有一个在 onCreate 中加载片段的 MainActivity。我有另一个从操作栏加载的片段。如果我更改第一个片段的屏幕方向,它会按预期工作。如果我更改第二个片段,它将重置为第一个片段。这似乎是因为它重建了所有内容并将原始片段放回到片段管理器中。我确信有一种方法可以跟踪当前显示的片段,但我不确定如何进行。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // Database entries
    myDataSource = new FillupDataSource(this);
    myDataSource.open();

    // Create an instance of the MyListFragment 
    MyListFragment firstFragment = new MyListFragment();
    Bundle bundle = new Bundle();
    bundle.putSerializable("dataSource", (Serializable) myDataSource);
    firstFragment.setArguments(bundle);

    // Add the fragment to the 'fragment_container' FrameLayout
    getSupportFragmentManager().beginTransaction().add(R.id.fragment_container, firstFragment).commit();

    getActionBar().setDisplayHomeAsUpEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)

我确信这一定是已经做过很多次的事情,但我很难知道如何搜索它。

android android-fragments

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

多个列表框绑定到同一个List

我试图将几个ListBox绑定到List.当一个表单上的ListBox更新时,我希望它也更新另一个表单框.

我遇到的问题是,当我更新基础List时,它似乎没有更新ListBox上的视图.如果我在调试中查看ListBox.Items,我可以看到我添加的所有项目都在那里,但是没有显示.此外,当我打开另一个在ListBox上显示List的表单时,它会正确显示已添加的任何项目.

private List<String> _list;

public Form1()
{
   InitializeComponent();

   _list = StaticInstanceOfList.GetInstance();
   listbox1.DataSource = _list;
}

public void AddStringToList(string value)
{
   if (!_list.Contains(value))
   {
      _list.Add(value);
   }
}
Run Code Online (Sandbox Code Playgroud)

c# datasource listbox

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