|
CanFocus is readOnly property, You can not assign any value to it. This is the main cause of the error.
You should do as below:
you can write the below code in Form1(say)
Form2 f2 = new Form2();
f2.Show();
this.Focus();
|
|
|
|
|
Im actually not trying to shift focus to the main form, im trying to make it so that the user doesnt lose focus from the window that he is currently looking at.
How can i do that?
|
|
|
|
|
Above code results the same what you are looking for.
|
|
|
|
|
Wait so if the user is working in microsoft word for example, and this form pops up (it is used to notify the user), it wont take the focus away form microsoft word?
Because thats what im tring to achieve.
thx
|
|
|
|
|
I am pasting image in a richTextBox using clipboard.
It works fine. But I want to restore the previous clipped data.
Any clue, How to go for it? The code I am using for trial is, as below
private void PasteImg(RichTextBox richTextBox1, string imageFileName)
{
System.Windows.Forms.DataObject prevDat = new DataObject();
prevDat.SetData(Clipboard.GetDataObject());
#region Pasting the image
if("" == imageFileName) imageFileName = @"c:\JayShared\music.bmp";
Bitmap myBitmap = new Bitmap(file);
Clipboard.SetDataObject(myBitmap, false);
DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap);
if(richTextBox1.CanPaste(myFormat))
{
richTextBox1.Paste();
}
#endregion Pasting the image
Clipboard.SetDataObject(prevDat, true);
}
|
|
|
|
|
The major problem is that the managed IDataObject and OLE clipboard functions (which support drag-n-drop) don't support nearly as much as the OLE IDataObject and related functionality. The best thing you can do is just store save the IDataObject (don't store it in a DataObject ; you could loose a lot of data) and restore it later:
IDataObject oldData = Clipboard.GetDataObject();
Clipboard.SetDataObject(); You still run the risk of losing some data for certain applications that may sink events with the OLE implementation of the native IDataObject interface. Even the Office clipboard ring, for example, can't save everything (typically when the media type is TYMED_ISTREAM or TYMED_ISTORAGE because the provider may want to provided data to stream that may no longer be available depending on the connection to an advice sink).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Dear Heath,
Thanks a lot for your reply.
I modified the function as below and tested with copying text on Clipboard before entering into the function and after execution of the function. But the test result failed for 1.TextPad 2.Notepad 3. MS Word.
I have modified the code as below.
IDataObject oldData = Clipboard.GetDataObject();
System.Windows.Forms.DataObject prevDat = new DataObject();
prevDat.SetData(oldData);
Clipboard.SetDataObject(prevDat,true);
Can anything be done further?
Or Should I modify the pasting of image in richTextBox functionality, which does not use Clipboard.
Regards,
Jay
|
|
|
|
|
I said do not store the old data in a managed DataObject . You keep it as it - as an interface reference. That has the greatest change of preserving the data that is there. Once again:
IDataObject oldData = Clipboard.GetDataObject();
Clipboard.SetDataObject(oldData);
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
It results System.Runtime.InteropServices.ExternalException : The requested clipboard operation failed. Error.
Regards,
Jay.
|
|
|
|
|
On what line? What does your code look like? Please be more specific. I can't help you if you just give me tidbits of information. Why do you think doctors want you to come in in order to diagnose problems, besides charging you money (which we don't do here, so that's even more incentive to be verbose).
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
I am really sorry for not elaborating the scenario.
Below are the details.
Steps resulting error
1. I. Open TextPad / MS Word, II. write text III. Copy the content in the clipboard
2. I. Run the C# Application II. Call the method
3.Causes Runtime eroor at Clipboard.SetDataObject(oldData) line ;
4. Error Details :
System.Runtime.InteropServices.ExternalException : The requested clipboard operation failed.
Code :
private void PasteImg(RichTextBox richTextBox1, string imageFileName)
{
IDataObject oldData = Clipboard.GetDataObject();
#region Pasting the image
if("" == imageFileName) imageFileName = @"c:\JayShared\music.bmp";
Bitmap myBitmap = new Bitmap(imageFileName);
Clipboard.SetDataObject(myBitmap, false);
DataFormats.Format myFormat = DataFormats.GetFormat (DataFormats.Bitmap);
if(richTextBox1.CanPaste(myFormat))
{
richTextBox1.Paste();
}
#endregion Pasting the image
Clipboard.SetDataObject(oldData);
}
|
|
|
|
|
Jay Shankar wrote:
It works fine. But I want to restore the previous clipped data.
Well, I'm not sure if that's your problem but when I execute your code I get a COMException (Error HRESULT E_FAIL has been returned from a call to a COM component) after Clipboard.SetDataObject() has been called but that might be due to the .NET Framework 2.0 (no, I don't have a version 1.x installed ). Anyway. It should work fine when you replace the first two line with:
IDataObject prevDat = Clipboard.GetDataObject();
This is also how it's done in the code sample in the Visual Studio Documentation (see Clipboard.GetDataObject Method[^]). Please let me know if this hint solves your problem.
Best regards
Dennis
|
|
|
|
|
Dear Dennis,
Thanks a lot for your reply. I modified the function as par suggestion by you and Mr. Heath. But could not achieve the goal. Still trying....
Regards,
Jay
|
|
|
|
|
I'm looking to drive a class definition off of a configuration file and make the properties be definied through code using the PropertyBuilder class in Reflection. The one thing we can't figure out is if we can make the dynamic properties available in intellisense or even in code. Our goal is to make the dynamic class appear as a static coded class, so all the intellisense features are available. I assumed shadowing GetType() would do it and force VS.NET to use the correct type def, but it doesn't appear to work.
Does anyone have any thoughts on how to make it work. Is there a method we can override that VS.NET uses to introspect the object?
|
|
|
|
|
You will need to to reference the generated assembly in the project. That should allow intellisense to pick up the classes. If the code is generated and incorparated into the build, then just adding the generated files should be enough. Look how xsd -> cs is done.
top secret Download xacc-ide 0.0.3 now! See some screenshots
|
|
|
|
|
Take a look at the CodeDomSerializer class, which you can use to persist a file that IntelliSense can parse. This is how code is generated from XSD files, Windows Forms controls and forms, etc.
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Hey
I have been looking into som article here on Codeproject about remoting.
There is some thing i dont understand realy.
I have tryed to make a object(from dll file) active(creat) by using remoting(SingleCall).
The client simes like it gets the object but its empty.(I know that the client is working)
How do i fill the object with info? I have tryed do creat the object on the server and add the info to it, but when the client request a remot obj it takes a new one.
I have thougt of writing the info in the dll file, but then i dont realy need the server to transfer it when all the info is already in the dll file on at the client. I could let the dll file open a file on the server an read info there but this dont simes right?
How do i let the server add information to the object that the client is geting info from?
Server Code:
hc = new HttpChannel(10034);
ChannelServices.RegisterChannel(hc); RemotingConfiguration.RegisterWellKnownServiceType(typeof(QuoteService.Quotes),"QuoteServer",WellKnownObjectMode.SingleCall);
Remote dll(QuoteService.Quotes):
Arraylist that stors objects of an other class(QuoteService.Quote) that also is : MarshalByRefObject
Client Code:
hc = new HttpChannel(); ChannelServices.RegisterChannel(hc);
QuoteService.Quotes quote;
Random ranobj = new Random();
quote = (QuoteService.Quotes)Activator.GetObject(typeof(QuoteService.Quotes),"http://localhost:10034/QuoteServer");
This problem is probely silly!
//Jimmy
|
|
|
|
|
NoOne that can explain how to creat object on server and give it serten values and then to let the client read the information that the server have stored in this object(dll file)
//Jimmy
|
|
|
|
|
i'm just looking for something quick and dirty, and doesn't have to be elegant or efficient. I will have a C# .EXE in one process that needs to get info from a C++ DLL. the quickest way to get something up and running would probably be just writing to a file and then reading it from the other process. or should i use named pipes or sockets? is there an easier way i'm missing? thanks
|
|
|
|
|
You aren't very clear as to the type of C++ dll that you have. Is it a C++ COM dll or a standard Win32 dll? What does the data look like that you need to get from the C++ dll? There are mechanisms such as P/Invoke that may work and there are also RCW's that you can explore - all depending on what type of dll it is. More information would be helpful in answering your question.
- Nick Parker My Blog | My Articles
|
|
|
|
|
it's a COM dll, but it will be loaded in a different process (of perhaps another exe) than the c# exe. information i'd be passing from the com dll to the C# exe would be simple strings.
|
|
|
|
|
Hi.
I have a program write in c# that fills a dataset from a access database and send it to a web services.
This web services has to update the data on a sql server.
The problem is the next every time i run the program this send the dataset to the webservices, but the webservices every time insert the information in a new row.
here is the code if you can help me.
[WebMethod(Description="Metodo para insertar DataSet")]
public string guarda(DataSet source)
{
int rows;
conn.Open();
SqlTransaction transac;
transac = conn.BeginTransaction();
SqlCommand sql_select = new SqlCommand("SELECT ccactual, DescCuenta, CCcpv, CuentaRealCPV, ctaactiva FROM cuentas", conn, transac);
SqlCommand sql_update = new SqlCommand("UPDATE cuentas SET ccactual=@ccactual, DescCuenta=@DescCuenta, CCcpv=@CCcpv, CuentaRealCPV=@CuentaRealCPV, ctaactiva=@ctaactiva WHERE ccactual = @ccactual_b", conn, transac);
SqlCommand sql_insert = new SqlCommand("INSERT INTO cuentas (ccactual, DescCuenta, CCcpv, CuentaRealCPV, ctaactiva) VALUES (@ccactual, @DescCuenta, @CCcpv, @CuentaRealCPV, @ctaactiva)", conn, transac);
SqlCommand sql_delete = new SqlCommand("DELETE FROM cuentas WHERE ccactual = @ccactual_b", conn, transac);
SqlDataAdapter da = new SqlDataAdapter();
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
da.AcceptChangesDuringFill = false;
da.SelectCommand = sql_select;
da.UpdateCommand = sql_update;
da.UpdateCommand.Parameters.Add("@ccactual", SqlDbType.VarChar, 10, "ccactual");
da.UpdateCommand.Parameters.Add("@DescCuenta", SqlDbType.VarChar, 50, "DescCuenta");
da.UpdateCommand.Parameters.Add("@CCcpv", SqlDbType.Int, 4, "CCcpv");
da.UpdateCommand.Parameters.Add("@CuentaRealCPV", SqlDbType.Int, 4, "CuentaRealCPV");
da.UpdateCommand.Parameters.Add("@ctaactiva", SqlDbType.Int, 4, "ctaactiva");
da.UpdateCommand.Parameters.Add("@ccactual_b", SqlDbType.VarChar, 10, "ccactual");
da.InsertCommand = sql_insert;
da.InsertCommand.Parameters.Add("@ccactual", SqlDbType.VarChar, 10, "ccactual");
da.InsertCommand.Parameters.Add("@DescCuenta", SqlDbType.VarChar, 50, "DescCuenta");
da.InsertCommand.Parameters.Add("@CCcpv", SqlDbType.Int, 4, "CCcpv");
da.InsertCommand.Parameters.Add("@CuentaRealCPV", SqlDbType.Int, 4, "CuentaRealCPV");
da.InsertCommand.Parameters.Add("@ctaactiva", SqlDbType.Int, 4, "ctaactiva");
da.DeleteCommand = sql_delete;
da.DeleteCommand.Parameters.Add("@ccactual_b", SqlDbType.Int, 4, "ccactual");
da.Fill(target,"cuentas");
target.Merge(source,true);
target.Tables["cuentas"].da
rows = da.Update(target,"cuentas");
transac.Commit();
conn.Close();
return rows.ToString();
}
Thanks
|
|
|
|
|
First, you really should wrap this in a try-catch-finally block, where you commit your transaction in the try, rollback in the catch, and close the connection in the finally.
Without knowing what the data in your DataSet has, you'll need to debug your code and look at the state of the DataSet (perhaps persist it to a file passing XmlWriteMode.DiffGram to easily view the DataRowState ). Make sure that the rows that should be updated have the DataRowState.Modified value.
Since you're merging these updated rows could look like new rows in the target DataSet .
This posting is provided "AS IS" with no warranties, and confers no rights.
Software Design Engineer
Developer Division Sustained Engineering
Microsoft
[My Articles] [My Blog]
|
|
|
|
|
Is there any possiblities to access all of the variables from a class dynamically (something like MyFriends.GetVariable("Name"); )?
fsadfasdfsadfasdfasdf
|
|
|
|
|
And is there some Information available for Regexps in C#?
I wasn't able to extract strings out of an other string with Regex.Match (e.g. /^([^=]+)=(.+)$/ - should extract key and value of a "key=value" pair...)
(I just edited my account options)
|
|
|
|
|